![]() |
![]() |
![]()
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: 233 Pomógł: 9 Dołączył: 3.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kod (?>[^<]*) "znaczy połknij wszystkie znaki różne od < i nie oddawaj" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) przetestuj:
podobną właściwość... to jest w sumie chyba równoważne... a jak nie jest to nie wiem czym się różni będzie miało
regexp jak znajdzie "a+" we wzorcu to najpierw łyka wszystkie "a" które spotka, ale jak się okaże że zaraz po "a+" jest potrzebne "a", to jedno "a" "wypluje" z powrotem, aby można było resztę wzorca dopasować a++ jak i (?>a+) czy analogiczne konstrukcje nie pozwalają "wypluwać" mam nadzieje że dość jasno to opisałem.. starałem się... co do (?R) to jest to rekurencyjne zagnieżdżenie, teoretycznie to wygląda tak że cały zewnętrzny wzorzec (jeśli się nie mylę) powinien zostać wpisany w miejsce (?R) czyli jeśli twój wzorzec ma postać (to jedynie postać schematyczna... nie ma prawa działać...): Kod foo(?R)bar no to to się rekurencyjnie zagłębia w siebieKod foofoofoofoo(?R)barbarbarbar itp.w dokumentacji wyrażeń regularnych jest to dość słabo opisane i może dlatego nie udało mi się napisać regexp-a rekurencyjnego który by działał tak jak bym tego chciał... (trochę to pogięte... albo ja jestem głupi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) co do "wykorzystania w przeczeniu całej frazy" to tutaj używamy asercji negatywnych "patrzących do przodu"
mimo że pozwalam pojawić się wszystkim znakom => .+ To i tak nie dam sobie wmówić że jestem głupi (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) :P generalnie polecam przeczytać dokumentację regexp (w sumie 16 stron) dość dobrze napisana (tylko ta rekurencja jakoś średnio...) najgorsze jest że wszystko jest podobne a mamy wyrażenia warunkowe, 4 rodzaje asercji, rekurencje, różne operacje na podciągach ciężko zapamiętać jak to się oznacza wszystko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) co do x masz rację... tutaj autor rozdzielał wszystko spacjami dla łatwiejszego czytania tych wszystkich nawiasów... jak wywalisz spacje to możesz również wywalić x PS. jak odkryjesz zasadę działania rekurencji we wzorcu to możesz to opisać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) będę wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) EDIT: męczyłem, męczyłem i wymęczyłem, to działa chyba jak kod który podałeś
Ten post edytował zimi 10.01.2008, 01:23:16 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 03:05 |