假设我有一个字符串:
tttteeeeeeessssssttttttt
使用正则表达式的强大功能,该字符串如何变成:
test
起初看起来很容易做到,但我现有的代码(不是正则表达式)表现不佳,而且我非常确定正则表达式是要走的路。
答案 0 :(得分:2)
答案 1 :(得分:1)
使用string.replaceAll
功能。
strng.replaceAll("(.)\\1+", "$1");
上述正则表达式捕获相同字符序列中的第一个字符,并匹配以下一个或多个字符(必须与捕获组内的字符相同)。用组索引1中的字符替换这些字符将为您提供所需的输出。
示例:
System.out.println("tttteeeeeeessssssttttttt".replaceAll("(.)\\1+","$1" ));
输出:
test
答案 2 :(得分:1)
(.)(?=\1)
试试这个。empty string
。见。演示。
https://regex101.com/r/tX2bH4/41
str = str.replaceAll("(.)(?=\\1)", "");