我正在使用 Python,并且有一个多行字符串,如下所示:
The quick brown fox jumps over the lazy dog.
The quick quick brown fox jumps over the quick lazy dog. This a very very very very long line.
This line has other text?
The quick quick brown fox jumps over the quick lazy dog.
我想用 slow
替换所有出现的 quick
,但有一个异常(exception)。当 quick
后面接着 quick
时,只有第一个 quick
会被第二个 quick
转换,相邻的 quick
保持不变.
因此,输出应如下所示:
The slow brown fox jumps over the lazy dog.
The slow quick brown fox jumps over the slow lazy dog. This a very very very very long line.
This line has other text?
The slow quick brown fox jumps over the slow lazy dog.
我可以使用多次传递来完成此操作,首先将所有内容转换为慢速
,然后在第二次传递期间转换边缘情况。但我希望有一个更优雅或更明显的一次性解决方案。
最佳答案
这是不支持前瞻的正则表达式引擎的变体:
quick(( quick)*)
替换为
slow\1
关于Python 正则表达式替换所有模式,除非它位于重复模式旁边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56939340/