测力计
我想替换所有字符串,如:
"aaaa"
"zzzzzzz"
"----------"
"TTTTTT"
"...."
字符串仅包含一个字符,但> 3次。
我使用Java。我可以用3次以上的字符替换一个特定的字符(例如“ a”),但是不知道如何用任何字符进行此操作:
str = str.replaceAll("^[a]{4,}$", "");
任何的想法?如果在regex中无法做到这一点,您将如何做?
威克多·斯特里比尤(WiktorStribiżew)
任何字符都可以与.
和Pattern.DOTALL
修饰符匹配。
要检查是否相同,我们可以捕获第一个字符并使用向后引用来匹配相同的文本,并使用限制量词{3,}
来检查至少3次出现的相同子字符串。
查看正则表达式和IDEONE演示:
List<String> strs = Arrays.asList("aaaa", "zzzzzzz", "----------", "TTTTTT", "....");
for (String str : strs)
System.out.println("\"" + str.replaceAll("(?s)^(.)\\1{3,}$", "") + "\"");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句