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%)
-----


bamboos << Problem był podobny, ale mi chodzi o wyciaganie tego przez preg_match_all i późniejszą zamianę, próbowałem to co podałeś przerobić... ale niezbyt chciało wychodzić.
kubatron << Znam manual 8) . Część o wyrażeniach też. 8)

Ale wykombinowałem. Trochę na odwrót i dłużej, ale się udało:
[php:1:4a776f80c8]<?php
preg_match_all('/<ztpl:if condition="(.[^"]*?)">((?(?=.*<ztpl:if.*).[^ztpl:if]*|.*))</ztpl:if><ztpl:else>((?(?=.*<ztpl:if.*).[^ztpl:if]*|.*))</ztpl:else>/Us', $tmp_el, $commands_m, PREG_SET_ORDER);
?>[/php:1:4a776f80c8]
Zastsosowałem wyrażenie warunkowe (?(?=...)...|...) i nawet działa dobrze (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Dzięki wszystkim!
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: 12.10.2025 - 08:54