re.compile()与字符串python的有效模式不匹配

时间:2018-08-07 22:27:29

标签: python regex python-2.7

以下比赛无效:

import re
pattern = re.compile("[\^\/!*\[({%?$]")

param = "f00.*"

if pattern.match(param):
    print " I am a regexp"
else:
    print "non regexp"

但是这样做:

import re
node_pattern = re.search("[\^\/!*\[({%?$]", "f00.*")

print bool(node_pattern)

re.compile()有什么问题?

不是将字符串与正则表达式匹配的有效方法吗?

1 个答案:

答案 0 :(得分:0)

正如列夫·扎哈罗夫(Lev Zakharov)所指出的那样,您的问题不是关于re.compile()而是关于re.search()re.match()之间的区别。该代码以您想要的方式工作,仅将match更改为search

import re
pattern = re.compile("[\^\/!*\[({%?$]")

param = "f00.*"

if pattern.search(param):
    print " I am a regexp"
else:
    print "non regexp"

关于您的用例,您可能还有一个更具体的问题,我们没有得到。