You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何扩展字母数字列表中范围项的末尾数字生成完整列表?

适配你的字母数字范围扩展需求

下面是针对你提供的列表格式编写的解决方案,核心是调整正则表达式以匹配「固定前缀+数字范围」的结构:

import re

values = ['1111X0-1111X3', 'A111X0-A111X3', '单个条目示例']
values_output = []

for item in values:
    # 匹配前缀相同的数字范围格式
    match_result = re.match(r'^(.+?)(\d+)-\1(\d+)$', item)
    if match_result:
        # 提取前缀、起始数字、结束数字
        prefix = match_result.group(1)
        start_num = int(match_result.group(2))
        end_num = int(match_result.group(3))
        # 生成所有范围内的条目
        values_output += [f"{prefix}{num}" for num in range(start_num, end_num + 1)]
    else:
        # 无范围的条目直接加入结果
        values_output.append(item)

print(values_output)

正则表达式详解

^(.+?)(\d+)-\1(\d+)$ 各段作用:

  • ^ / $:锚定字符串首尾,确保整个条目都符合匹配规则
  • (.+?):非贪婪捕获固定前缀,例如1111X或A111X,非贪婪模式避免把后续数字也纳入前缀
  • (\d+):捕获范围的起始数字(如0)
  • -:匹配范围分隔符
  • \1:引用第一个捕获组的内容,强制要求前后前缀完全一致
  • (\d+):捕获范围的结束数字(如3)

运行效果

针对你提供的示例输入,输出会是:

['1111X0', '1111X1', '1111X2', '1111X3', 'A111X0', 'A111X1', 'A111X2', 'A111X3', '单个条目示例']

内容的提问来源于stack exchange,提问作者ReynoldL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 09:40:25