Python正则表达式与文件扩展名匹配

Python正则表达式与文件扩展名匹配,python,regex,Python,Regex,我想使用Python正则表达式实用程序查找具有以下模式的文件: 000014_L_20111026T194932_1.txt 000014_L_20111026T194937_2.txt ... 000014_L_20111026T194928_12.txt 因此,我想要的文件有一个下划线“\u1”,后跟一个数字(1个或多个数字),然后后跟“.txt”作为扩展名。我使用了以下正则表达式,但它与上述名称不匹配: match = re.match('_(\d+)\.txt$', file) 要匹

我想使用Python正则表达式实用程序查找具有以下模式的文件:

000014_L_20111026T194932_1.txt
000014_L_20111026T194937_2.txt
...
000014_L_20111026T194928_12.txt
因此,我想要的文件有一个下划线“\u1”,后跟一个数字(1个或多个数字),然后后跟“.txt”作为扩展名。我使用了以下正则表达式,但它与上述名称不匹配:

match = re.match('_(\d+)\.txt$', file)

要匹配文件名,正确的正则表达式应该是什么?

您需要使用
.search()
.match()
定位到字符串的开头。您的模式在其他方面很好:

>>> re.search('_(\d+)\.txt$', '000014_L_20111026T194928_12.txt')
<_sre.SRE_Match object at 0x10e8b40a8>
>>> re.search('_(\d+)\.txt$', '000014_L_20111026T194928_12.txt').group(1)
'12'
>>重新搜索(“\uD+\.txt$”,“000014\u L\u 20111026T194928\u 12.txt”)
>>>重新搜索(“”(\d+)\.txt$”,'000014_L_20111026T194928_12.txt')。组(1)
'12'

请参阅:谢谢。我习惯了Perl风格的正则表达式:)谢谢Martijin。这很有效。因此,即使我使用“$”从字符串的末尾指示,.match函数也不会从末尾搜索?@tonga:No
$
是一个锚点,它将只在字符串的末尾匹配;它不会指示搜索从哪里开始。您应该将
.match()
视为向模式添加隐式
^