string - 替换字符串中所有重叠的模式

标签 string python-2.7 replace substitution

给定字符串:s = "101010101" ,我想替换每一次出现的模式 010 ,模式为 0X0 ,这样结果应该是 s = "10X0X0X01" .

另一个类似的问题是替换相同的模式01000 ,这样结果字符串应该是 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/

相关文章:

javascript - 在 JavaScript 中替换 "' "with " '' "

visual-studio-code - 如何防止 Visual Studio Code 中 'Replace all' 之后自动保存文件?

string - 是否有可用的开源软件来分析字符串并猜测作者的性别?

java - StringUtils vs!=空

python - 在 Python 2.7 中,每次调用外部文件中的函数时,变量都会重新初始化吗

VBA Access - 在 Word 文档中查找和替换文本

Delphi 字符串和引用计数

c# - 为什么正则表达式计数在 C# 中用作长度?

Python .lower 似乎没有正确地小写所有 unicode 字符(Python 2.7)

python - 在 python 2.7 中编写一个函数来查找三角数