Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyrażenia regularne i p{L}
Forum PHP.pl > Forum > Przedszkole
Krisu
Szukałem w wielu kursach i na wielu stronach wzmianki o tym co oznacza zapis p{L}, w wyrażeniach regularnych, jedyne użycie widziałem w tematach na tym forum,
http://forum.php.pl/index.php?s=&showt...st&p=305521

używane w celu szukania ciągów ze znakami językowymi np. ą, ę etc. Jednak nie zawsze to wyrażenie się sprawdza.

Przykładowo wyrażenie
Kod
'/([\w]+ \|( [\w]+ \|){3} [\w]+)/u'
zwraca
Kod
Wszystkie | Handel | Pomoc | Atak | Pozosta
w szukanym ciągu
Kod
Wszystkie | Handel | Pomoc | Atak | Pozostałe


Zatem logiczne wydaje się zmodyfikowania wyrażenia do postaci
Kod
'/([\w]+ \|( [\w]+ \|){3} p{L}+)/u'
jednak w tym wypadku zostaje zgłoszony fałsz.

Moje pytanie jest następujące, co dokładnie oznacza stosowanie p{L} oraz czy są jakieś inne ciekawe zapisy, których nie poruszają kursy internetowe? Ew. proszę o polecenie jakiegoś dobrego, dość rozszerzonego kursu wyrażeń regularnych stosowanych w PHP, może być to książka.
Crozin
Tyle szukałeś, a tego nie znalazłeś? http://pl.php.net/manual/en/pcre.pattern.php Kompletne omówienie składni wyrażeń regularnych w PHP.
Krisu
Rzeczywiście, nie przeszukałem stron anglojęzycznych za dobrze, a w tym manuala, jednak nadal nie rozumiem dlaczego p{L} w powyższym przykładzie nie zwraca żadnego rezultatu. Wyrażenie
Kod
'/([\w]+ \|( [\w]+ \|){3} p{L}+)/u'
wydaje się być dobre, a mimo to nie działa.

EDIT: Moja nieuwaga. Przed p{L} powinien wystąpić backslash. W rezultacie powinno być
Kod
'/([\w]+ \|( [\w]+ \|){3} \p{L}+)/u'


Przepraszam za problem.
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.