我想使用“ re”库将字符串与我需要的字符串匹配。
例如,我有一个如下所示的for循环,我想根据循环号找到它们结束的文件:
for ind in range(10):
file_name = re.match(r'^abc.*\.\d{ind}', s)
但是我认为这不是正确的方法,因为ind是变量?
例如,因此,我想找到这些文件:
> ind==1 -> abc1 ind==2 -> abc2 ind==3 -> abc3
如果您告诉我编写这部分代码的正确方法,我将不胜感激。
答案 0 :(得分:0)
(已编辑)
在字符串中放置变量名不会自动为您替换该值。您要做的是format
一个字符串。
for ind in range(10):
file_name = re.match(r'^abc.*\.{}'.format(ind), s)
如果这有点令人困惑,您还可以使用旧语法
re.match(r'^abc.*\.%d' % ind, s)
答案 1 :(得分:0)
请尝试:
r'^abc.*[' + str(ind) + r']'
您使用的令牌不正确。 {x}
的意思是将前面的模式重复x次。因此,\d{ind}
基本上表示您的文件将以ind
个数字结尾而不是数字本身。
[ind]
是您所需要的。
答案 2 :(得分:0)
在python36或更高版本上尝试此代码
for ind in range(10):
print(f'^abc.*\.\d{ {ind} }')