Python 如何用正则表达式替换多个重叠模式?
我想用Python 如何用正则表达式替换多个重叠模式?,python,regex,Python,Regex,我想用和替换所有出现的& 例如,x&&&&&&应该变成x&&&and 我尝试了re.sub('&&','and','x&&&&&&&&&'),但是没有成功,第一个&&&已经使用了空格,所以第二个不匹配 然后我想到了非捕获组,并尝试了,但再次失败 我怎样才能解决这个问题 (?:^|(?<=\s))&&(?=\s|$) 输出:'x&&and'您可以在此处使用非单词边界 >>> re.sub(r'\B&&\B', 'and', 'x&&
和
替换所有出现的&
例如,x&&&&&&
应该变成x&&&and
我尝试了re.sub('&&','and','x&&&&&&&&&')
,但是没有成功,第一个&&&
已经使用了空格,所以第二个不匹配
然后我想到了非捕获组,并尝试了,但再次失败
我怎样才能解决这个问题
(?:^|(?<=\s))&&(?=\s|$)
输出:
'x&&and'
您可以在此处使用非单词边界
>>> re.sub(r'\B&&\B', 'and', 'x&& && &&')
'x&& and and'
这似乎是一个非常古老的帖子。任何寻找替代方法的人也可以使用下面的正则表达式
re.sub(r"(\s)(\&\&)(?=(\s))", r"\1and", a)
此代码的输出是
'x&&and'
,而不是'x&&and'
@pabtore现在有一个打字错误。请检查
re.sub(r"(\s)(\&\&)(?=(\s))", r"\1and", a)