gpt4 book ai didi

python - Python 正则表达式的 lookbehind/lookahead 组中不区分大小写

转载 作者:行者123 更新时间:2023-12-05 09:13:57 28 4
gpt4 key购买 nike

<分区>

我了解如何在 Python 中使匹配不区分大小写,并且我了解如何使用先行/后行,但如何将两者结合起来?

比如我的文字是

mytext = I LOVE EATING popsicles at home.

我想提取popsicles来自这篇文章(我的目标食品)。这个正则表达式效果很好:

import re
regex = r'(?<=I\sLOVE\sEATING\s)[a-z0-9]*(?=\sat\shome)'
re.search(regex, mytext)

但是,我想考虑一下有人写的场景

i LOVE eating apples at HOME.

应该匹配。但是"I LOVE eating Apples at home"不应该匹配,因为 Apples是大写的。

因此,我希望在我的两个前瞻中有本地大小写不敏感 (?=\sat\shome)并向后看(?<=I\sLOVE\sEATING\s)团体。我知道我可以使用 re.IGNORECASE全局不区分大小写的标志,但我只希望先行/后行组不区分大小写,而不是我的实际目标表达式。

传统上,我会在前面加上 (?i:I LOVE EATING)创建一个能够匹配 I LOVE EATING 的不区分大小写的非捕获组和 I love eating .但是,如果我尝试将两者结合在一起:

(?i:<=I\sLOVE\sEATING\s)

我没有找到匹配项,因为它现在解释 i:作为要匹配的文字表达式。有没有办法将先行/后行与区分大小写结合起来?

编辑:我认为这不是标记问题的重复。这个问题专门询问了一个群体的一部分——我在问一个特定的子集——向前看和向后看。这里的语法不同。其他帖子中的答案并不直接适用。正如这篇文章的答案所暗示的那样,您需要应用一些变通方法来实现不适用于假定的重复 SO 帖子的此功能。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com