2010-09-25 54 views
9

我在这样的PHP中有一个字符串。Php正则表达式重复字符

$海峡=“ABCCCDE” //蕴含重复字符CCC的2倍以上

我想知道是否有任何重复的字符使用正则表达式的2倍以上。

在此先感谢

+2

连续序列? – Gumbo 2010-09-25 07:32:43

回答

18
if (preg_match('/(.)\\1{2}/', $str)) 
    echo "Has 3 same characters consecutively!"; 

(.)将匹配任何字符(除新线),以及\1将匹配的模式相同,第一个匹配的组 - 在这种情况下,我们就已经字符匹配。因此,此RegEx将匹配3个相同的连续字符。

+0

当字符串“abccde”时返回1。它应该返回1只有一个重复的字符超过2次 – Novice 2010-09-25 07:35:10

+0

@ Shahid:现在不行了。 – kennytm 2010-09-25 07:37:21

3

您可以使用:

'/(.)\1\1/' 

例如为:

preg_match('/(.)\1\1/', $str, $matches);