false "ohhhhh" -> true "whatsuppp" -6ren">
gpt4 book ai didi

java - Java中正则表达式查找相同字符是否重复3次或以上

转载 作者:行者123 更新时间:2023-12-01 07:18:48 26 4
gpt4 key购买 nike

我的要求是仅使用Java正则表达式来检查给定字符串是否包含在字符串中连续重复超过3次的相同字符。

例如:

"hello"  -> false
"ohhhhh" -> true
"whatsuppp" -> true

最佳答案

您可以使用以下正则表达式来解决您的问题:

^.*(.)\1\1.*$

说明

  1. ^ 字符串的起始点
  2. .* 任意字符 0 到 N 次
  3. (.) 捕获组中将由反向引用使用的一个字符
  4. \1 对捕获字符的反向引用(我们调用它两次以强制执行 3 次重复限制)
  5. .* 任意字符 0 到 N 次
  6. $ 输入字符串末尾

我已经测试过:

hello -> false
ohhhhh -> true
whatsuppp -> true
aaa -> true
aaahhhahj -> true
abcdef -> false
abceeedef -> true

最后但并非最不重要的一点是,您必须在正则表达式中的每个反斜杠 \ 之前添加一个反斜杠 \,然后才能在 Java 代码中使用它。

这将为您提供以下原型(prototype) Java 代码:

  ArrayList <String> strVector = new ArrayList<String>();
strVector.add("hello");
strVector.add("ohhhhh");
strVector.add("whatsuppp");
strVector.add("aaa");
strVector.add("aaahhhahj");
strVector.add("abcdef");
strVector.add("abceeedef");

Pattern pattern = Pattern.compile("^.*(.)\\1\\1.*$");
Matcher matcher;

for(String elem:strVector)
{
System.out.println(elem);
matcher = pattern.matcher(elem);
if (matcher.find())System.out.println("Found you!");
else System.out.println("Not Found!");
}

在执行时给出以下输出:

hello
Not Found!
ohhhhh
Found you!
whatsuppp
Found you!
aaa
Found you!
aaahhhahj
Found you!
abcdef
Not Found!
abceeedef
Found you!

关于java - Java中正则表达式查找相同字符是否重复3次或以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47806343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com