Python是否支持类似Vim的正则表达式内联大小写不敏感标识?
Python正则表达式的内联大小写不敏感支持
Python的re模块支持内联正则修饰符,不需要完全依赖全局的re.I(re.IGNORECASE)参数来设置大小写不敏感,不过它的语法和Vim的\c不同,采用的是Perl兼容的括号式修饰符:
全局内联生效:在模式开头添加
(?i),整个正则表达式都会忽略大小写,示例:import re match = re.search(r'(?i)hello', 'HELLO World') print(match.group()) # 输出 HELLO局部范围生效:把
(?i)放在需要忽略大小写的片段前,仅对后续部分生效(直到遇到关闭修饰符(?-i)),示例:# 仅"llo"部分忽略大小写 match = re.search(r'he(?i)llo', 'HeLLo') print(match.group()) # 输出 HeLLo # 临时关闭修饰符 match = re.search(r'(?i)hel(?-i)lo', 'HELlo') print(match.group()) # 输出 HELlo("lo"部分区分大小写)
需要注意的是,Python并不支持Vim里的\c这种简洁的内联标识,必须使用(?i)这种括号语法。如果整个正则表达式都需要忽略大小写,使用全局参数re.I会更简洁直观:
match = re.search(r'hello', 'HELLO', re.I)
内容的提问来源于stack exchange,提问作者David542
相关产品推荐
相关产品推荐

