以下比赛无效:
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()有什么问题?
不是将字符串与正则表达式匹配的有效方法吗?
答案 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"
关于您的用例,您可能还有一个更具体的问题,我们没有得到。