![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 20.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Eh... wysiadam. :cry: Próbuję wymęczyć pewne wyrażenie regularne.
Kod /<poczatek>(.*)</koniec>/Us
Chodzi o to, żeby powyższe wyrażenie nie dopasowywało ciągów, w których pomiędzy tagami <poczatek> i </koniec> wystapi znów tag <poczatek>. Próbowałem wszystkich sposobów, ale nie wiem jak wyłączyć z ciagu cały wyraz, a nie pojedyńcze znaki. Pomóżcie, proszę! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 20.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Hm... nie całkiem o to mi chodziło. To faktycznie działa w takim przypadku, jaki ty podałeś, ale tylko kiedy jedno [ php ] nie jest zagłebione w drugim.
Chodzi o to, zeby w takim na przykład kodzie: [xml:1:77b8cfc704]<ztpl:if condition="1"> kod 1 </ztpl:if><ztpl:else> <ztpl:include element="category_hidden" /> <ztpl:if condition="1"> kod 2 </ztpl:if><ztpl:else> kod 3 </ztpl:else> kod 4 </ztpl:else>[/xml:1:77b8cfc704] Wyszukało najpierw to wewnętrzne if (które nie zawiera w sobie żadnego innego), wykonało odpowiednią fukcję, a póżniej wyszukało kolejne, wyższe w hierarchi. Kiedy używam tak jak napisałeś: [php:1:77b8cfc704]<?php preg_match_all('/<ztpl:if condition="(.*?)">(.*?)</ztpl:if><ztpl:else>(.*?)</ztpl:else>/Us', $tmp_el, $commands_m, PREG_SET_ORDER); ?>[/php:1:77b8cfc704] lub bez U, to dopasowuje mi wyrażenie nie całkiem tak jak powinno - sprawdź zresztą sam. Chodzi mi konkretnie o wyłączenie całego wyrazu z wyrażenia. Ma ktoś jeszcze jakiś pomysł? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 15:49 |