Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzenie powtarzalności znaków w stringu
Forum PHP.pl > Forum > PHP
kiler129
Witajcie
Znowu te nieszczęsne stringi mnie prześladują winksmiley.jpg Napisałem dobry regex który znajduje tylko te na których mi zależy ale mam problem z jedna rzeczą i nie wiem jak ją zaimpletować (nie koniecznie w regex).
Chodzi o to że w stringu jedna cyfra lub litera nie może wystąpić kolejno więcej niż 4 razy, tzn. ciąg ABCDEFGHIJKLMNOUPRST jest poprawny ale ABCDEFGGGGGGHIJKLMNO już nie.
Nie potrafię ich jednak w jakiś sensowny i szybki sposób odfiltrować mając na uwadze że będzie analizowane blisko 100MB tekstu.

Z góry dzięki za pomoc.
tehaha
może to Ci się przyda http://stackoverflow.com/questions/1637941...with-preg-match
kiler129
Faktycznie, ciekawe rozwiązanie. Dla potomnych mały kod:

  1. function rchar($text, $nr=3) //$text - tekst do sprawdzenia, $nr - ile razy dozwolone powtórzenie. Zwraca true jeśli powtórzono nie więcej niż $nr razy lub false jeśli powtórzono więcej
  2. {
  3. if(!preg_match('/(.)'.str_repeat('\1', $nr).'/', $text)) { return true; } else { return false; }
  4. }
  5.  
  6. /*
  7.  Test:
  8.   $nr = 3
  9.   TEST => bool(true)
  10.   TEEST => bool(true)
  11.   TEEEST => bool(true)
  12.   TEEEEST => bool(false)
  13. */
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.