2010-09-25 14 views
9

Mam ciąg znaków w php w ten sposób.Php Regular Expression powtarzające się znaki

$ str = „ABCCCDE” // Zawiera powtórzony znak CCC więcej niż 2 razy

Chcę wiedzieć, czy istnieje jakikolwiek powtórzonych znaków więcej niż 2 razy przy użyciu wyrażenia regularnego.

góry dzięki

+2

sukcesywna sekwencja? – Gumbo

Odpowiedz

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

(.) dopasuje dowolny znak (oprócz nowych linii), a \1 dopasuje wzór taki sam jak pierwszy dopasowane grupy - w tym przypadku charakter Właśnie dopasowane. Tak więc ten RegEx dopasuje 3 takie same kolejne znaki.

+0

Powoduje zwrócenie 1, gdy jest ciąg "abccde". Powinien powrócić 1 tylko tam powtórzony znak więcej niż 2 razy – Novice

+0

@Shahid: Już nie. – kennytm

3

Można użyć:

'/(.)\1\1/' 

np .:

preg_match('/(.)\1\1/', $str, $matches); 
Powiązane problemy