Python re.match不匹配以" .number"结尾的字符串。

时间:2016-12-11 07:19:07

标签: regex python-2.7

作为更大代码的一部分,我试图检查字符串(文件名)是否以" .number" 结尾 但是,re.match(re.compile和match)只是不匹配字符串末尾的模式。

代码:

import re
f = ".1.txt.2"
print re.match('\.\d$',f)

输出:

>>> print re.match('\.\d$',f)
None

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

使用search代替match

来自https://docs.python.org/2/library/re.html#search-vs-match

  

re.match()仅在字符串的开头检查匹配项,   而re.search()会在字符串中的任何位置检查匹配。

答案 1 :(得分:0)

您可以尝试

import re
word_list = ["c1234", "c12" ,"c"]
for word in word_list:
    m = re.search(r'.*\d+',word)
    if m is not None:
        print(m.group(),"-match")
    else:
        print(word[-1], "- nomatch")