Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Regex - łapanie odpowiednich tagów zamykających
SN@JPER^
post
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Witam.

Mam taki kod, którym próbuję wyciągnąć dane pomiędzy tym divem. Jednak w tym divie są inne divy i kończy "łapanie" na pierwszym napotkanym, zamykającym </div>. Jak mogę zrobić, aby rozpoznawało tag odpowiednio zamykający?

  1. preg_match_all("'<div id=\"left\" class=\"mb\">(.*?)</div>'is", $html, $matches);
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kreatiff
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


W (.*?) masz łapanie leniwe (lazy, czyli łapanie najmniej jak się da), właśnie przez ten znak zapytania. Usuń go, a dopasowywanie zmieni się w zachłanne (greedy, dopasuj maksymalnie dużo).
Możesz też użyć modyfikatora U, który zmienia (odwraca) zachłanność wzoru, bez usuwania tego znaku zapytania.

W wyniku wyrażenia regularnego nadal będziesz musiał pozbyć się nadliczbowych znaczników <div>.

Ten post edytował kreatiff 10.11.2017, 15:43:58
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: 9.10.2025 - 18:54