正则表达式中的重复符号

Gre*_*man 1 regex

我创建一个java程序,需要检查字符串是否有三个或更多相同字母的子字符串.

如果我写,[a-z]{3,}那么对于任何三个或更多字母的字符串都是如此,即使它们不相同.

例如,我有这些字符串:"abcd","qwer""aaabb".[a-z]{3,}适合所有人,我需要一个只适合的表达"aaabb".

那么请告诉我如何写这样的正则表达式?"

Tim*_*ker 5

假设您只想检查ASCII字母,请使用

([a-z])\1{2}
Run Code Online (Sandbox Code Playgroud)

如果要检查任何重复的字符,请使用

(.)\1{2}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,\1都是对第一个捕获组(由...构造(...))的内容的反向引用,因此\1{2}匹配两个重复的任何匹配的([a-z])(.).

小心将Java字符串中的反斜杠加倍:

Pattern regex = Pattern.compile("([a-z])\\1{2}");
Run Code Online (Sandbox Code Playgroud)