Python编译的带有ignorecas的regex搜索

2024-10-01 11:26:41 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中搜索带有IGNORECASE标志的已编译正则表达式时,是我做错了什么,还是预期会出现以下行为?奇怪的是,在编译正则表达式时似乎必须定义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

Tags: testresearchstring标志assertregexbut
1条回答
网友
1楼 · 发布于 2024-10-01 11:26:41

查看pythonre模块的文档:

  • 你知道吗检索(pattern,string,flags=0)允许将标志作为可选参数。3.7 documentation link
  • 你知道吗模式.搜索(字符串[,pos[,endpos]])不存在。编译后的模式必须已使用您要应用的任何设置进行了编译。3.7 documentation link

相关问题 更多 >