Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [regex] Wyłączanie całego wyrazu z wyrażenia
Zakrn
post
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ę!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zakrn
post
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ł?
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 15:49