谁能给我一个 Java 正则表达式来替换以下内容。
如果我有一个像“Cooooool”这样的词,我需要用 3 个 o 将其转换为“Cool”。这样我就可以用正常的“酷”字来区分它了。
另一个例子:“happyyyyyy”应该是“happyyy”
replaceAll("(.)\\1+","$1"))
我试过了,但它删除了所有重复的字符,只留下一个。
最佳答案
如下所示更改您的正则表达式。
string.replaceAll("((.)\\2{2})\\2+","$1");
(
第一个筛选组的开始。(.)
捕获任何字符。对于这种情况,您可以使用[a-z]
\\2
指的是第二个捕获组。\\2{2}
必须恰好重复两次。)
第一个捕获组结束。所以这将捕获前三个重复字符。\\2+
重复第二组一次或多次。
关于java - 正则表达式替换重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32071060/