![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciałbym wykorzystać w przeczeniu (^), nie pojedynczy znak tylko frazę. Tak jak jest powyżej nie działa. Jak napiszę [^(tak)]* też nie działa. Więc jak to zrobić ? Ten post edytował orglee 9.01.2008, 15:37:58 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%) ![]() ![]() |
Wczoraj w akcie desperacji wysłałem do autora tego komentarza mejla odpowiedź która przyszła wyjaśniała założenia tego wzorca niestety w bardzo ubogi sposób. Dziękuję zimi wreszcie zaczynam łapać o co chodzi.
Zrozumiałem coś takiego: Rekurencja działa od środka to znaczy w przypadku tagów pobiera najpierw Cytat $str = "<div>bbdiv>bbbb</div><div>b<div>bbbb</div>bbb</div>bb</div>"; czyli część środkową potem wkleja to w miejsce (?R) i sprawdza znowu. Czyli działa od środka na zewnątrz mam rację ? Teraz sprawa twojego wzorca. Wynik jaki otrzymuję jest identyczny jak w przykładzie z komentarza, teraz prosiłbym o powiedzenie mi czy dobrze go rozumiem. "@<div>(?(?=</?div>)(?R)|.)+</div>@" @<div> - bez przesady to chyba rozumiem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) @<div>(? - jeśli dopasowałeś <div> sprawdzaj dalej @<div>(?(?=</?div>) - Kolejna część ma się równać </?div> natomiast w tym znak zapytania sprawdza czy zostało dopasowane </ i jeśli tak każe kontynuować (?R) - Wklej tutaj to co będzie wynikiem (?(?=</?div>)(?R)|.)+ Dobra a teraz gdzie popełniłem błąd ? hehe Ten post edytował orglee 10.01.2008, 13:55:42 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 05:42 |