我试图使用正则表达式子方法,但是它不能代替所有出现的方法。请参见下面的代码。我想将所有出现的“ &&”替换为“和”。表达式中有一个前导空间和尾随空间。
location
请帮助。
答案 0 :(得分:2)
由于匹配项重叠,因此您可以在正则表达式中使用环顾四周:
(?<= )&&(?= )
代码:
>>> string =" && && 7978888 && 896"
>>> tmp = re.sub(r"(?<= )&&(?= )", "and", string)
>>> tmp
' and and 7978888 and 896'
此处使用后向和前向断言使regex引擎仅断言&&
之前和之后的空间,而不会实际移动当前位置。
答案 1 :(得分:0)
此处的混乱之处在于,两个&&之间只有一个空格。 如果有两个空格,那么它将按预期工作,但是为什么要在正则表达式模式中包含空格呢? “(&&)”不能很好地工作吗?
>>> import re
>>> string = " && && 7978888 && 896"
>>> tmp = re.sub(r"&&", "and", string)
>>> tmp
' and && 7978888 and 896'
如果这还不够,您还需要遵循哪些其他独特的约束条件?