Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne - problem
Forum PHP.pl > Forum > Przedszkole
Lame
No to teraz walczę z regexami smile.gif Jak to najłatwiej zapisać by znajdowało mi w pliku wyrażenie: <!--INCLUDES jakieś_tekst-->

  1. <?php
  2. preg_match_all('/(<!--INCLUDEn){1}([a-zA-Z0-9_]+)(-->){1}/', $this->_uncompiled, $coś_tam)
  3. ?>
nie działa, bo pewnie stanowi jakiś niepośledni

bełkot tylko ja o tym jeszcze nie wiem smile.gif
I czy ktoś mógłby mi wytłumaczyć skąd taka forma zapisu:

  1. <?php
  2. preg_replace('/{([^}]+)}/e', '$this->dane[\"1\"]', $this->tmpl);
  3. ?>


Na moje oko to winno to wyglądać jakoś tak (tej powyższej formy nie rozumiem):

  1. <?php
  2. preg_replace('/{([a-zA-Z0-9_]+)}/e', '$this->_blocks[\"$1\"]', $this->tmpl);
  3. ?>
FiDO
Cytat
No to teraz walczę z regexami smile.gif Jak to najłatwiej zapisać by znajdowało mi w pliku wyrażenie: <!--INCLUDES jakieś_tekst-->


  1. <?php
  2.  
  3. preg_match_all('#<!--INCLUDESs+w+-->#U', $this->_uncompiled, $coś_tam);
  4.  
  5. ?>



Cytat
I czy ktoś mógłby mi wytłumaczyć skąd taka forma zapisu:

  1. <?php
  2. preg_replace('/{([^}]+)}/e', '$this->dane[\"1\"]', $this->tmpl);
  3. ?>

Chodzi Ci zapewne o ten [^}]+ kawalek ? To dziala na takiej zasadzie,ze wylapuje wszystkie znaki oprocz (znak ^ oznacza w tym przypadku negacje) tych ktore sa umieszczone w nawiasie, w tym wypadku wszystko oprocz }
Lame
Dzięki wielkie, męczę się z tymi regexami już drugi dzień (próbuję system szablonów napisać), a wszystko przez to, że trudno znaleźć w necie jakieś wyczerpujące źródło informacji o nich (manual php odpada bo mam kłopoty ze zrozumieniem bardziej skomplikowanych terminów technicznych po ang.)

Cytat
Chodzi Ci zapewne o ten [^}]+ kawalek ? To dziala na takiej zasadzie,ze wylapuje wszystkie znaki oprocz (znak ^ oznacza w tym przypadku negacje) tych ktore sa umieszczone w nawiasie, w tym wypadku wszystko oprocz }


Dokładnie o to mi chodziło smile.gif Właśnie powodu dla którego znak "^" występował w tym wyrażeniu nie mogłem rozgryźć, ani wpaść na to jaką rolę pełni smile.gif Chciałem się jeszcze zapytać - w celach szkoleniowych, co jest nie tak w zapisie:

  1. <?php
  2. preg_match_all('/(<!--INCLUDEn){1}([a-zA-Z0-9_]+)(-->){1}/', $this->_uncompiled, $coś_tam)
  3. ?>


Wyszukiwać "to coś" biggrin.gif powinno zaś <!--INCLUDE jakieś_tekst--> - wcześniej się machnąłem i wstawiłem niepotrzebnie S, spacji też zdaje się nie było widać.
FiDO
Cytat
(manual php odpada bo mam kłopoty ze zrozumieniem bardziej skomplikowanych terminów technicznych po ang.)

Pracuje nad tlumaczeniem (ze swoimi dodatkami) tej czesci manuala, bo uwazam go za swietne zrodlo informacji jesli chodzi o regexpy.

Cytat
Chciałem się jeszcze zapytać - w celach szkoleniowych, co jest nie tak w zapisie:

  1. <?php
  2. preg_match_all('/(<!--INCLUDEn){1}([a-zA-Z0-9_]+)(-->){1}/', $this->_uncompiled, $coś_tam)
  3. ?>

Wyglada w miare dobrze poza jednym szczegolem.. Znaki specjalne jak \n trzeba umieszczac w stringach umieszczonych w cudzyslowach, a nie apostrofach, zeby zostaly one poprawnie rozpoznane.
Pozatym wszelkie {1} sa w tym wyrazeniu niepotrzebne, mozesz spokojnie sie ich pozbyc. Nawiasy w okolo INCLUDE oraz --> rowniez, jesli potrzebujesz wyciagnac tylko to co jest miedzy nimi.
Lame
Cytat
Pracuje nad tlumaczeniem (ze swoimi dodatkami) tej czesci manuala, bo uwazam go za swietne zrodlo informacji jesli chodzi o regexpy.


W stu procentach popieram, nigdy za mało tego typu incjatyw - z tego co zdążyłem przejrzeć ta część manuala jest rzeczywiście dobrym źródłem informacji, nie leci po łebkach lecz wchodzi w szczegóły, dla mnie jednak, jak już wspomniałem, przeszkodą jest dość skomplikowana (jak dla mnie) terminologia w jęz. angielskim. Jeszcze raz dzięki za pomoc.

I jeszcze jedna rzecz która mnie dziwi - właśnie odkryłem, iż to moje ostatnie wyrażenie:

  1. <?php
  2. '/(<!--INCLUDEn){1}([a-zA-Z0-9_]+)(-->){1}/'
  3. ?>


Działa jeśli zrobię spację po pierwszym nawiasie (czyli wystarczy spacja? nie trzeba używać zanków specjalnych?).
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.