Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenie PERL
Krzychur
post
Post #1





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.01.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam!
Mam mały problem z wyrażeniem PERL:

Kod
<!-- BEGIN loop -->.*?(<!-- IF\:empty -->(.*?)<!-- ENDIF\:empty -->)?.*?<!-- END loop -->


Chciałbym, aby znalazło ono w podmiocie np.:
Kod
<!-- BEGIN loop -->
loop {id.loop}
<!-- IF:empty -->brak iteracji<!-- ENDIF:empty -->
<!-- END loop -->


wyłapało wartości:
1 => "<!-- IF:empty -->brak iteracji<!-- ENDIF: empty -->"
2 => "brak iteracji"

a w podmiocie

Kod
<!-- BEGIN loop -->
loop {id.loop}
<!-- END loop -->


1 => ""
2 => ""

Niestety tak się nie dzieje. Program Regular Expression Editor w wersji 1.2.0 wyświetla błąd: Uninitialized string offset: 1.

Błąd znika, jeżeli umieszcze ciągi znaków ".*?" w nawiasach zwykłych np.:
Kod
<!-- BEGIN loop -->(.*?)(<!-- IF\:empty -->(.*?)<!-- ENDIF\:empty -->)?(.*?)<!-- END loop -->


ale wtedy zostają zwrócone takie wartości:
1 => ""
2 => ""
3 => ""
4 => "loop {id.loop}<!-- IF:empty -->brak iteracji<!-- ENDIF:empty -->"

Moze ktoś mi pomóc rozwiązać ten problem?

Ten post edytował Krzychur 10.12.2005, 10:56:22


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 19.08.2025 - 15:41