gpt4 book ai didi

python - 使用重叠模式在 Python 中使用正则表达式进行字符串替换

转载 作者:行者123 更新时间:2023-12-04 09:42:55 25 4
gpt4 key购买 nike

我想找 &&使用正则表达式并将其替换为 and使用 Python。
这是我的正则表达式:

r"(?=( && ))"
测试输入: x&& &&& && && x || | ||\|| x , 预期输出: x&& &&& and and x or | ||\|| x .我的 Python 代码:
import re

input = "x&& &&& && && x || | ||\|| x"
result = re.sub(r"(?=( && ))", " and ", input)
print(result)
我的输出是: x&& &&& and && and && x || | ||\|| x .这实际上有效,但它没有替换,而是在找到模式时将原始模式添加到我的替换字符串中。这真的很令人困惑。

最佳答案

正向前瞻中的捕获组可用于提取重叠模式。要替换它们,您实际上需要使用文本,环视不会使用它们匹配的文本。

在这种情况下,您只有一个重叠的尾随空间,因此您可以使用以下两种方法之一:

text = re.sub(r"( )&&(?= )", r"\1and", text)

或者,如果您需要更换任何 &&前面或后面都没有任何空格字符,请使用
text = re.sub(r"(?<!\S)&&(?!\S)", r"and", text)

请注意 inputPython builtin ,您应该以不同的方式命名您的文本变量,例如 text .

关于python - 使用重叠模式在 Python 中使用正则表达式进行字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62251399/

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