Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia regularne - niedziałające odwołania, j.w.
Capellini
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 16.10.2007

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


Czy mógłby ktoś spojrzeć na poniższe wyrażenie?

  1. preg_match("/<(.*)>(.*)<\/\1>/", "Ten tekst jest odwrocony: <odwroc>fdgd</odwroc>", $matches);


Po wykonaniu tej instrukcji, $matches jest pustą tablicą, a wynik powinien być taki:

  1. $matches[0] == "<odwroc>fdgd</odwroc>"
  2. $matches[1] == "odwroc"
  3. $matches[2] == "fdgd"


Zauważyłem, że problem jest w odwołaniu \1 bo gdy \1 zastąpię słowem 'odwroc', to wszystko działa jak należy. Nadal nie wiem, co konkretniej jest nie tak.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Capellini
post
Post #2





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 16.10.2007

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


Teraz mam problem z innym wyrażeniem:

Kod
<.*?/\s*>


Czyli na przykład dla:

Kod
<a><b /></a>


Pasującym ciągiem powinno być
Kod
<b />
, a znajduje
Kod
<a><b />


To drugie też pasuje, ale specjalnie dałem po * znak zapytania, żeby dopasowywało leniwie więc powinno zwracać to pierwsze.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 09:47