正则表达式匹配重复三次的字符

时间:2011-10-11 21:38:18

标签: regex

我需要简化以下正则表达式以包含字母表中的所有字母:

(a{3})|(b{3})|(c{3})|(z{3})|(A{3})|(B{3})|(C{3})|(Z{3})

在实践中,我想找到相同三个字符的所有序列,例如:

aaa
bbb
nnn
VVV
JJJ

等等。

2 个答案:

答案 0 :(得分:9)

使用反向引用。例如。在sed:

\([a-zA-Z]\)\1\1

或PERL正则表达式

([a-zA-Z])\1\1

答案 1 :(得分:8)

使用反向引用的正则表达式是合适的。

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

所以preg_match('/([a-z])\1{2}/i', $string);的内容就足够了。