Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrazenie regularne - problem z pobraniem kodu metody
Forum PHP.pl > Forum > PHP
lukaskolista
Witam. Mam problem z wyrazeniem regularnym pobierajacym zawartosc metody. Przykladowo mamy metode
  1. public function action_test()
  2. {
  3. echo 'test';
  4.  
  5. if (true)
  6. {
  7. echo 'test';
  8. }
  9.  
  10. echo 'test';
  11. }

Chcialbym pobrac metode wraz z jej kodem za pomoca funkcji preg_match. Robie to w nastepujacy sposob:
  1. preg_match('/(public function action_test)[a-z]*\(\)\s*\{(.|\n)}/', $code, $action);
Niestety takie wyrazenie nie jest odporne na znaki { i } wewnatrz metody a nawet na znak konczacy metode, po prostu pobiera wszystko do konca klasy.

Chcialem napisac wyrazenie odporne na takie zachowanie w ktorym zawarlbym podwyrazenia ktore pilnuja znacznikow { i }, tzn. ich par tak, ze po znalezieniu znaku } bez { jako otwarcia wyrazenie by sie konczylo. Nie jestem dobry z wyrazen regularnych, jedyne co przyszlo mi do glowy to
  1. preg_match('/(public function action_test)[a-z]*\(\)\s*\{((\{(.|\n)*\})*|(.\n)*)}/', $code, $action);
jednak i to nie pomoglo. Prosze o pomoc, bede bardzo wdzieczny.
wookieb
Temat: Jak poprawnie zatytulowac watek
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.