2010-09-25 26 views
9

Böyle bir php dizim var.Php Normal İfade Tekrarlanan karakterler

$ str = "ABCCCDE" // karakter CCC fazla 2 kez herhangi tekrarlanan karakterleri düzenli ifade kullanarak 2 kat daha fazla olup olmadığını bilmek istiyorum

tekrarlanan İçeriğinde. peşin

Teşekkür

+2

Ardıl diziyi? – Gumbo

cevap

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

(.) (yeni hatlar hariç) herhangi bir karakterle eşleşir ve \1 ilk eşleşen grupla aynı bir desen maç olacak - bu durumda, sadece ettik karakteri eşleşti. Bu yüzden bu RegEx, birbirini izleyen 3 karakteri eşleştirir.

+0

"abccde" dizesi olduğunda 1 değerini döndürür. 1 döndürmelidir sadece 2 kez tekrarlanan bir karakter var – Novice

+0

@Shahid: Artık değil. – kennytm

3

Sen kullanabilirsiniz:

'/(.)\1\1/' 

Örn .:

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