我希望您能提供一个正则表达式模式,以匹配每个字符的第三个、第四个...出现次数。请看下面的解释:
例如,我有以下字符串:
我想要替换第二次出现后的所有重复字符。输出结果如下:
例如,我有以下字符串:
111aabbccxccybbzaa1
我想要替换第二次出现后的所有重复字符。输出结果如下:
11-aabbccx--y--z---
到目前为止,我尝试过的一些正则表达式模式:
使用以下正则表达式,我可以找到每个字符的最后一个出现:
或者使用这个正则表达式,可以找到连续重复的但不是任何重复的:
pip install regex
安装 PyPi 正则表达式。 - Wiktor Stribiżew(.)(?<=(.*\1){3})
,这个更好吗? - Stefan Pochmann(.)(?<=(?:.*\1){3})
也可以完成任务,但所有这些方法都不好,因为过度回溯可能会导致长字符串出现问题。我宁愿编写一个非正则表达式的方法来解决这个问题。 - Wiktor Stribiżew(.)(?<=(?:.*\1){3})
只需要25毫秒,(.)(?<=(?:\1.*?){2}\1)
只需要3毫秒。您可以自行测试。您的模式似乎是效率最低的,并且最难阅读。 - bobble bubble