【问题标题】:re.compile() doesn't match the valid pattern against a string python [duplicate]re.compile() 与字符串 python 的有效模式不匹配 [重复]
【发布时间】:2018-08-07 22:27:29
【问题描述】:
以下匹配无效:
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() 有什么问题?
这不是将字符串与正则表达式匹配的有效方法吗?
【问题讨论】:
标签:
python
regex
python-2.7
【解决方案1】:
正如 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"
也许您对我们没有得到的用例有更具体的问题。