re.compile()不';t将有效模式与字符串python匹配

re.compile()不';t将有效模式与字符串python匹配,python,regex,python-2.7,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_patt

以下匹配不起作用:

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


这不是将字符串与regexp匹配的有效方法吗?

正如列夫·扎哈罗夫指出的那样,你的问题不在于
re.compile()
,而在于
re.search()
re.match()
之间的区别。此代码按您希望的方式工作,仅将
匹配
更改为
搜索

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

param = "f00.*"

if pattern.search(param):
    print " I am a regexp"
else:
    print "non regexp"
也许您对您的用例有一个我们没有得到的更具体的问题