Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Parser preg_match
Yorki
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 2
Dołączył: 12.09.2005

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Yorki 27.09.2012, 11:40:15
Go to the top of the page
+Quote Post
m44
post
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 10
Dołączył: 16.11.2008

Ostrzeżenie: (0%)
-----


Może token_get_all jakoś Ci się przyda?
Go to the top of the page
+Quote Post
vonski
post
Post #3





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jesli chodzi o strone z przykladami to wg mnie najlepiej jest to wytlumaczone w starym dobrym manualu (IMG:style_emoticons/default/smile.gif)
Co do Twojego problemu, to czy probowales z 'assertions' (nie wiem jak to bedzie po polsku (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 17:21