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

发布于 2024-11-14 02:09:53 字数 378 浏览 4 评论 0原文

假设我有一个包含 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挖鼻大婶 2024-11-21 02:09:53

Python 不支持以同样的方式禁用标志;你必须以不同的方式处理它。

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

Python does not support disabling flags in the same manner; you will have to handle it differently.

>>> re.match('[Ff][Oo]{2}bar', 'Foobar')
<_sre.SRE_Match object at 0x7eff94dac920>
⒈起吃苦の倖褔 2024-11-21 02:09:53

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文