Hej!
Mam problem z prostym wyrażenim regularnym o_O Cały kod:
if (preg_match('/^.*[Error].*$/',$text)) {
echo 'zle';
} else echo 'OK';
Co jest źle?
Prosze o pomoc i pozdrawiam
Hej!
Mam problem z prostym wyrażenim regularnym o_O Cały kod:
if (preg_match('/^.*[Error].*$/',$text)) {
echo 'zle';
} else echo 'OK';
Co jest źle?
Prosze o pomoc i pozdrawiam
Jaki konkretnie problem? Samo wyrażenie regularne jest raczej poprawne.
Wywala cały czas OK nie zależnie od tego czy słowo Error występuje w $text czy nie…
Nie dopasuje zawsze. Jeżeli chcesz dopasować słowo “Error” napisz po prostu Error. Natomiast nawiasy kwadratowe tworzą grupę, to której pasują znaki w tej grupie. [Error] będzie pasować do ‘E’, ‘r’ oraz ‘o’.
Musisz wyeskejpować nawiasy kwadratowe
W sumie to ciągle było bez [] a pod koniec jak kombinowałem to dołorzyłem… tak czy siak też nie działa
if (preg_match('/^.*Error.*$/',$text)) {
preg_match('/^.*?\[Error\].*?$/', $text)
Inna sprawa, że te gwiazdki po bokach nie są potrzebne.
preg_match('/\[Error\]/', $text)
Czyli generalnie nie ma sensu zatrudniać regexpów do tego, wystarczy funkcja strpos :
<?php echo (strpos($text, '[Error]') === FALSE) ? 'ok' : 'źle';
Dzięki, działa ale jeszcze nie do końca
if (strpos($text, "[Error]") === FALSE) {
$aError[] = $i+1;
echo "ZNALEZIONE $i";
}
to wszystko jest w pętli i choć $text się zmienia (i w końcu jest bez texty error) cały czas wywala że znaleziono błąd o_O i w ogóle po co są [] w tym: strpos($text, “[Error]”) ?
Proszę o pomoc i pozdrawiam
Przecież ciągu „[Error]” chciałeś szukać ;/
strpos zwróci FALSE, jeśli dany ciąg nie został znaleziony.
Dobra thx, już ogarnąłem