![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam skrypt:
efekt: Kod Array ( [0] => Array ( [0] => [code-one word="test"]problematyczne[/code-one] [code-one word="hehe"]zadanie[/code-one] ) [1] => Array ( [0] => test"]problematyczne[/code-one] [code-one word="hehe ) [2] => Array ( [0] => zadanie ) ) które mi parsuje tekst. powinien mi wyciągnąć wyrażenia "problematyczne" i "zadanie" jednak coś źle działa. Prawdziwe zastosowanie powinno być: - usuwać tagi i wyciągać tekst Co może być złe? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Kropka w regexpie oznacza "wszystko" a asteriks (gwiazdka) oznacza zero lub więcej. Jest to tak zwane wyrażenie regularne zachłanne, które łapie więcej niż byśmy chcieli. Jak rozwiązać twój problem? Zachłanne wyrażenia można albo zmniejszyć im zakres wyszukiwania, poprzez dodanie znaku zapytania, albo zbudować bardziej logiczne wyrażenie.
Twój przykład: http://www.regexr.com/39jj0 przykład z ograniczonym wyrażeniem: http://www.regexr.com/39jj3 przykład z bardziej logicznym wyrażeniem: http://www.regexr.com/39jj6 polecam testować swoje wyrażenia na stronach typu regexer.com które ci dodatkowo podpowiedzą, dlaczego twoje wyrażenie działa w taki a nie inny sposób. Oczywiście trzeba mieć na uwadze że implementacja wyrażeń regularnych w php i w javascript jest nieco różna, ale w większości przypadków będziesz mógł przetestować swoje wyrażenia. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:05 |