使用正则表达式替换连续重复的模式

4
我希望能够使用正则表达式将连续重复的模式替换为单一的模式。例如:
  1. ABABABABB -> ABB
  2. AAACCC -> AC
  3. AABAAC -> ABAC
如何实现这个功能?
1个回答

5
以下正则表达式可以找到所有包含重复模式的匹配项:
(.+?)\1+

这是一个范例:https://regex101.com/r/noOaHJ/1,正则表达式只是一种用于查找模式的工具,如何在实际替换中使用它取决于你正在使用的语言。

嗨,谢谢你的回答。我已经尝试了你建议的方法。它会替换所有相同模式的出现。我想要的是它只改变连续的模式。例如:ABABABABBDAB 应该被改成 ABBDAB。 - Agus Sanjaya
正如我所说,正则表达式只能帮助您查找模式-如果您玩弄我给出的链接,您会发现我给出的正则表达式可以很好地工作。您在使用此正则表达式进行实际替换的代码中遇到了问题。 - ketan vijayvargiya
这个问题已经被回答了。如果要替换,您应该提出另一个问题来替换正则表达式模式。这是因为答案取决于您使用的编程语言。 - ketan vijayvargiya
我正在使用Java编写代码。temp = temp.replaceAll("(.+?)\\1+", "(?:$1)+") - Agus Sanjaya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接