![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 372 Pomógł: 2 Dołączył: 10.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
1.następujący wzorzec: ^a*a$
wyrazy w ktorych sprawdzam dopasowanie to: antylopa, Agnieszka i agregat Dla wyrazu antylopa nie ma dopasowania z wzorcem! Dlaczego? Przecież przekładając wzorzec z polskiego na nasze wygląda to tak: rozpocznij od a, następnie pobierz dowolne znaki i zakończ na a, więc antylopa powinna mieścić się w dopasowaniu. 2. następujący wzorzec a*a Teraz wszystkie wyrazy nawet agrest pasują do podanego wzorca. Dlaczego? Przecież powinna tylko antylopa 3. następujący wzorzec ^a*a antylopa pasuje - tu jest dobrze, Agnieszka nie pasuje - tu też dobrze, ale dlaczego pasuje agrest? przecież powinny być dwie litery 'a' w wyrazie, jest tylko jedna. Dodam, że sprawdzam wszystko na funkcji preg_match(), wzorce zapisane są w postaci '/^a*a$/', '/a*a/' i '/^a*a/' |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Skoro Cię to ciekawi to przeczytaj ten kurs:
http://gajdaw.pl/php/wyrazenia-regularne/p1.html Jest bardzo przystępny i zrozumiały. Zachłanne to znaczy, że dla dopasowanie a.*b nie ma sensu. (kropka odpowiada za pojedynczy znak a gwiazdka mówi że może się powtarzać od 0 do wielu) 'b' w tym przypadku też jest wchłaniane przez .* (dlatego mówimy zachłanne - gwiazdka wchłonie ile może) kiedy użyjesz .*? uzyskujesz dopasowywanie leniwe (gwiazdka wchłonie minimalną ilość znaków). Można tym jeszcze manipulować modyfikatorami. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 09:58 |