如果在字符串中出现超过4次,则仅删除前导重复字符

时间:2014-06-10 13:37:46

标签: java regex string

重复字符可以是[a to z][0 to 9]或任何特殊字符。

例如:

String a = "CCCCCCgshdbuasvbd";

考虑C = [a to z],[0 to 9]或类似~!@#$%*&()_-><?的内容。

我需要在字符串中删除“如果出现超过4次的字符串中的任何重复前导字符”。

如何使用正则表达式完成此操作?

3 个答案:

答案 0 :(得分:1)

怎么样:

搜索:^(.)\1{3,}
替换:<NOTHING>

这将替换字符串开头的任何字符,无效时出现4次或更多次。

答案 1 :(得分:1)

您可以使用:

str = str.replaceAll("^(\\S)\\1{3,}", "");

Working Demo

答案 2 :(得分:0)

使用java的基于regex的replaceAll()方法。正则表达式应该通过允许任何字母和数字(^

开始([a-Z0-9]

然后你知道它开始的任何一个字符需要重复至少3次({3,}

您正在替换与空字符串匹配的任何内容(即删除它)

str = str.replaceAll("^([a-Z0-9])(\\1){3,}","");