gpt4 book ai didi

Python 2.7 正则表达式捕获组未按预期工作

转载 作者:行者123 更新时间:2023-12-01 04:01:22 33 4
gpt4 key购买 nike

我正在尝试使用 Python 2.7 进行模式匹配并用第二人称替换第一人称。

string = re.sub(r'(\W)I(\W)', '\g<1>you\g<2>',string)
string = re.sub(r'(\W)(me)(\W)', '\g<1>you\g<3>',string)
# but does NOT work
string = re.sub(r'(\W)I|(me)(\W)', '\g<1>you\g<3>',string)

我想使用最后一个正则表达式,但不知何故,捕获组都搞乱了,甚至执行\g<0> 显示奇怪的、不规则的匹配。我认为捕获组 3 将是最后一个单词边界,但事实似乎并非如此。

示例句子可以是:我喜欢糖果。

我对替换的正确性不太感兴趣(因为我是第一个,所以我实际上永远不会被选中),但我不知道为什么捕获组不能按我的预期工作。

谢谢!

最佳答案

尝试使用以下正则表达式。

正则表达式: \b(I|me)\b

说明:

    两边的
  • \b标记了单词边界。

  • (I|me) 匹配 Ime

注意:-您可以使用 i 标志使其不区分大小写。

<强> Regex101 Demo

关于Python 2.7 正则表达式捕获组未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36447973/

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