Python编译的正则表达式-使用ignorecase搜索

时间:2019-05-09 20:01:35

标签: python regex

我做错什么了吗,还是在带有IGNORECASE标志的Python中搜索已编译的正则表达式时出现以下行为?奇怪的行为是,看起来我在编译正则表达式时必须定义IGNORECASE,但是在搜索已编译的正则表达式时不能使用IGNORECASE标志。

import re

regex_string = "test"

assert re.search(regex_string, "test")
assert re.search(regex_string, "TEST", re.IGNORECASE)

regex = re.compile(regex_string, re.IGNORECASE)
assert regex.search("test")
assert regex.search("TEST")
#assert regex.search("TEST", re.IGNORECASE) # appears logical but fails

regex2 = re.compile(regex_string)
assert regex2.search("test")
#assert regex2.search("TEST", re.IGNORECASE) # appears logical but fails

1 个答案:

答案 0 :(得分:1)

查看python re模块的文档:

  • re.search(pattern,string,flags = 0)允许将标志用作可选参数。 3.7 documentation link
  • Pattern.search(string [,pos [,endpos]])没有。必须使用您要应用的任何设置来编译已编译的模式。 3.7 documentation link