python 的正则表达式是否有任何等价于给定范围内的匹配数字?
比如在bash中,可以通过test{19..21}.txt匹配test19.txt、test20.txt、test21.txt
我不寻找正则表达式来匹配所有数字,如 [1-2][0-9]。
我只想匹配从某个数字到另一个数字的特定系列数字。
更新:最终目标是用 re.compile() 创建一个 regexp 对象,这样我就可以用它来搜索一个大的字符串列表。
请您参考如下方法:
['text' + str(i) + '.txt' for i in range(19, 22)]
会给你那个列表:
['test19.txt', 'test20.txt', 'test21.txt']
因此您可以列出该列表中的文件。例如,如果您有一个名为 words 的单词列表,并且想要过滤那些匹配它的单词:
r = ['text' + str(i) + '.txt' for i in range(19, 22)]
[x for x in words if x in r]
但是如果你真的想要一个正则表达式:
re.compile('|'.join(['text' + str(i) + '.txt' for i in range(19, 22)]))
