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



以下匹配不起作用:

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((有什么问题?

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

正如列夫·扎哈罗夫所指出的,你的问题与其说是关于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"

也许您对您的用例有一个我们没有得到的更具体的问题。

最新更新