我创建一个java程序,需要检查字符串是否有三个或更多相同字母的子字符串.
如果我写,[a-z]{3,}那么对于任何三个或更多字母的字符串都是如此,即使它们不相同.
例如,我有这些字符串:"abcd","qwer"和"aaabb".[a-z]{3,}适合所有人,我需要一个只适合的表达"aaabb".
那么请告诉我如何写这样的正则表达式?"
假设您只想检查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)
| 归档时间: |
|
| 查看次数: |
681 次 |
| 最近记录: |