有人可以给我一个Java正则表达式来替换以下内容.
如果我有一个像这样的"Cooooool"这样的词,我需要用3 o将其转换为"Coool".所以我可以用正常的词"酷"来区分它.
另一个例子:"happyyyyyy"应该是"happyyy"
replaceAll("(.)\\1+","$1"))
Run Code Online (Sandbox Code Playgroud)
我尝试了这个,但它删除了所有重复的字符,只留下一个.
像下面这样改变你的正则表达式.
string.replaceAll("((.)\\2{2})\\2+","$1");
Run Code Online (Sandbox Code Playgroud)
( 第一个捕捞组的开始.(.)捕获任何角色.对于这种情况,您可以使用[a-z]\\2指第二个捕获组.\\2{2}必须重复两次.)第一个捕获组结束.所以这将捕获前三个重复的字符.\\2+ 重复第二组一次或多次.