Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenie regularne dla więcej niż 1 znaku.
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Cześć. Dlaczego w poniższym kodzie preg_match zwróci FALSE skoro w $tekst użyłem tylko małych nie-polskich liter [a-z] ? Zwróci TRUE tylko jeśli podamy jedną literę. A przecież $wyrazenie wskazuje na dowolną ilość znaków z zakresu a-z. Czy się mylę?
  1. $tekst = 'tylko male litery';
  2. $wyrazenie = '/^[a-z]$/';
  3. if(preg_match($wyrazenie, $tekst))
  4. echo("Tekst zawiera tylko małe litery bez polskich znaków.");
  5. else
  6. echo("Tekst zawiera dodatkowe znaki.");
  7.  
viking
Bo zrobiłeś dokładnie jeden znak a-z.
Salvation
Tutaj możesz testować regexy zanim je zaimplementujesz u siebie w kodzie: https://regex101.com/
Polecam.
sadistic_son
Cytat(viking @ 19.12.2022, 16:03:51 ) *
Bo zrobiłeś dokładnie jeden znak a-z.

hmm, ok. Jak w takim razie zrobić żeby warunek był spełniony dla dowolnego stringu złożonego z małych nie-polskich liter?


@Salvation - dzięki, przyda się.
nospor
kurcze, za wszystko sie lapiesz bez zaczecia od podstaw. Lapiac sie za wyrazenia, to najpierw nalezy wziasc poczytac co one tam maja, naprawde krotka lista paru znakow z wyjasnieniami co dany oznacza i jak uzywac

+ - to robi wiele czegos, czyli u ciebie

/^[a-z]+$/'

Pierwszy lepszy link z netu
https://miroslawmamczur.pl/wyrazenia-regula...-wlasne-regexy/
sadistic_son
No właśnie, że zabrałem się od podstaw, ale w szkoleniu które sobie robiłem był błąd. https://kursphp.com/nauka-php-online/ Mam PDFa stąd i tam tego plusa nie ma. Co prawda w wersji online jest, ale wcześniej też go nie było, co już zuważono w komentarzach.
Teraz rozumiem dlaczego tak.
Dzięki.
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.