给定字符串:s = "101010101"
,我想替换每一次出现的模式 010
,模式为 0X0
,这样结果应该是 s = "10X0X0X01"
.
另一个类似的问题是替换相同的模式010
与 00
,这样结果字符串应该是 s = 100001
.
到目前为止,我尝试过:
import re
s = "101010101"
s = re.sub("010", "0X0", s)
但结果字符串是 10X010X01
,缺少替换 1
在中间。
有什么帮助吗?
最佳答案
您可以使用lookarounds查找值而不将它们包含在匹配中:
s = re.sub(r"(?<=0)1(?=0)", "X", s)
(?<=0)1(?=0)
匹配单个1
前面的字符 – (?<=…)
–
并关注 – (?=…)
– 减零。
关于string - 替换字符串中所有重叠的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009040/