正则表达式:如何匹配任何字母直到一个数字和匹配破折号

2024-06-28 11:06:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试匹配遵循某些规则的字符串序列:

  • rlg3-22、rlas1-4
  • pz公司
  • xx-0号
  • r1-6级

例如,在第一行中,我想匹配字符串直到“-”字符,这样我就可以执行下面的函数,将字符串扩展到(rlg3,rlg4,…,rlg22)。你知道吗

在第二排,我会保持原样。你知道吗

在第三排,我也会保持原样,因为第一排没有数字。你知道吗

谢谢你!你知道吗


Tags: 函数字符串规则公司序列数字字符xx
1条回答
网友
1楼 · 发布于 2024-06-28 11:06:55
d = 'rlg3-22'

import re
ops = re.findall(r"\d+",d)         # r"\d+" searches for digits of variables length
prefix = re.findall(r"\D+", d)[0]  # r"\D+" complement set of "\d+"

构建列表并将前缀添加到整数的字符串强制转换中

 [prefix + str(i) for i in list(range(int(ops[0]), int(ops[1]),1))]

['rgl3',
 'rgl4',
 'rgl5',
 'rgl6',
 'rgl7',
 'rgl8',
 'rgl9',
 'rgl10',
 'rgl11',
 'rgl12',
 'rgl13',
 'rgl14',
 'rgl15',
 'rgl16',
 'rgl17',
 'rgl18',
 'rgl19',
 'rgl20',
 'rgl21']

相关问题 更多 >