Python 正则表达式如何忽略模式的一部分而不是整个表达式内的大小写?
假设我有一个包含 foobar fooBAR FOObar FOOBAR
的字符串,并且我想搜索包含不区分大小写的“foo”或“FOO”但包含小写“bar”的所有实例。在这种情况下,re.findall
应返回 ['foobar', 'FOObar']
。
这个问题的接受答案解释说,它可以在 C# 中使用 < code>(?i)foo(?-i)bar,但 Python 会引发无效表达式错误。
Python 正则表达式库支持这样的功能吗?
Say I have a string containing foobar fooBAR FOObar FOOBAR
, and I want to search all instances containing a case insensitive "foo" or "FOO" but a lowercase "bar". In this case, re.findall
should return ['foobar', 'FOObar']
.
The accepted answer for this question explains that it can be done in C# with (?i)foo(?-i)bar
, but Python raises an invalid expression error.
Does the Python regex library support such a feature?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Python 不支持以同样的方式禁用标志;你必须以不同的方式处理它。
Python does not support disabling flags in the same manner; you will have to handle it differently.
re 模块不支持范围标志,但有一个替代的正则表达式实现可以支持:
http://pypi. python.org/pypi/regex
The re module doesn't support scoped flags, but there's an alternative regex implementation which does:
http://pypi.python.org/pypi/regex