Python正则表达式如何忽略模式的一部分而不是整个表达式?

Vor*_*ico 7 python regex case-sensitive case-insensitive

假设我有一个包含的字符串foobar fooBAR FOObar FOOBAR,我想搜索包含不区分大小写的"foo"或"FOO" 但是小写"bar"的所有实例.在这种情况下,re.findall应该返回['foobar', 'FOObar'].

这个问题的接受答案解释了它可以在C#中完成(?i)foo(?-i)bar,但Python引发了无效的表达式错误.

Python正则表达式库是否支持这样的功能?

Ign*_*ams 5

Python不支持以相同方式禁用标志; 你将不得不以不同的方式处理它.

>>> re.match('[Ff][Oo]{2}bar', 'Foobar')
<_sre.SRE_Match object at 0x7eff94dac920>
Run Code Online (Sandbox Code Playgroud)


MRA*_*RAB 4

re 模块不支持范围标志,但有一个替代的正则表达式实现可以:

http://pypi.python.org/pypi/regex