Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Parser preg_match
Forum PHP.pl > Forum > PHP
Yorki
Ma ktoś jakąś stronę z bardzo ładnym wytłumaczeniem wyrażeń regularnych i mnóstwem przykładów?

Ogólnie chodzi mi o mały parser, powiedzmy mam tekst:
Kod
'wywołanie Static::$MojaKlasa->funkcja(); no wiesz co :P MyClass->doIt()'


Chcę aby znalazło w tekście klasę z wywołaniem metody, nie obiekt, a więc:

MyClass - OK
$MojaKlasa - BAD
Static - BAD

Próbowałem:
  1. $class = '/[^\$][a-zA-Z0-9_ ]+\-\>/';


Ale wyświetla mi "MojaKlasa". Chciałbym tam dodać, że jeśli jest znak dolara to pomija.
m44
Może token_get_all jakoś Ci się przyda?
vonski
Jesli chodzi o strone z przykladami to wg mnie najlepiej jest to wytlumaczone w starym dobrym manualu smile.gif
Co do Twojego problemu, to czy probowales z 'assertions' (nie wiem jak to bedzie po polsku smile.gif ), np. tak:

  1. $pattern = '/\s(?<!\$)[a-zA-Z_]+[a-zA-Z0-9_]*\->/';


To powinno znalezc tylko: MyClass->

Inna sprawa, ze zastanawiam sie nad poprawnoscia skladniowa takiego zapisu jak klasa->metoda(); ale to juz nie moja sprawa wink.gif
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.