Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyrazenie regularne - problem, preg_match
marek220
post 18.09.2005, 14:26:43
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gliwice

Ostrzeżenie: (10%)
X----


Witam

Mam problem z wyrazeniem regularnym.

Potrzebuje wyciagnac do tablic informacje ze znacznikow:

[link:plik.htm] To jest moj link [/link]

Pattern nr 1:

Kod
'/\[link:([^\]]*)[\]]([^\[]*)\[\/link\]/'


Nie moge go użyć gdyż jeżeli w srodku znajdzie się znacznik [ to sie wszystko posypie., np.: [link:plik.htm] To jest [moj] link [/link]. Bo znalazl wczesniej znacznik [.

Mam pytanie jak zrobic patterna sprawzdajacy nie jeden znak a ciag, w sensie [^\[\/link\]] - bo w tej formie sprwadza dowolny z tych znaków.

Pattern nr 2:

Postanowilem uzyc .* do momentu wystapienia statycznego [/link]:

Kod
preg_match("/\[link:(.*)\](.*)\[\/link\]/",$str,$wynik);


Tutaj pojawia sie problem jezeli jest kilka obok siebie [/link] - bo zawsze (.*) patrzy do ostatniego a nie do pierwszego wystapienia.


Nie wiem czy jasno sie wyrazilem, w kazdym badz razie chodzi mi o sposob wrzucenia do zmiennej wszystkich znakow do momentu wystapienia okreslonego wyrazenia.


z gory dziekuje !

pozdrawiam


----

ok juz mi się udało. prawidłowa konwencja to: /\[link:(.*?)\](.*?)\[\/link\]/

pozdrawiam

Ten post edytował marek220 18.09.2005, 14:49:28
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 12:22