Skip to main content
 首页 » 编程设计

相当于 bash 的 {1..4} 的 Python 正则表达式

2025年05月04日31kevingrace

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)]))