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

ind*_*joe 1 python regex bash

python的正则表达式是否具有与给定范围内的匹配数字相当的东西?

例如在bash中,你可以通过test {19..21} .txt匹配test19.txt,test20.txt,test21.txt

不是在寻找正则表达式来匹配所有数字,如[1-2] [0-9].

我想只匹配从某个数字开始到另一个数字的特定系列数字.

更新:最终目标是使用re.compile()创建一个regexp对象,以便我可以使用它来搜索大的字符串列表.

Max*_*amy 5

['text' + str(i) + '.txt' for i in range(19, 22)]
Run Code Online (Sandbox Code Playgroud)

会给你那个清单:

['test19.txt', 'test20.txt', 'test21.txt']
Run Code Online (Sandbox Code Playgroud)

因此,您可以列出该列表中的文件.例如,如果您有一个已命名的单词列表,words并希望过滤与之匹配的单词:

r = ['text' + str(i) + '.txt' for i in range(19, 22)]
[x for x in words if x in r]
Run Code Online (Sandbox Code Playgroud)

但如果你真的想要一个正则表达式:

re.compile('|'.join(['text' + str(i) + '.txt' for i in range(19, 22)]))
Run Code Online (Sandbox Code Playgroud)