正则表达式中的重复符号

时间:2013-04-04 17:26:22

标签: regex

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

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

例如,我有以下字符串:"abcd""qwer""aaabb"[a-z]{3,}适合所有人,我需要一个仅适合"aaabb"的表达式。

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

2 个答案:

答案 0 :(得分:5)

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

([a-z])\1{2}

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

(.)\1{2}

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

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

(.)

答案 1 :(得分:4)

使用捕获

([a-z])\1{2}

这会捕获该字母,然后需要两个捕获字母