View Full Version : [PHP + RegEx] Estrarre tutte le sottostringhe comprese tra "<!--" E "-->"
ToO_SeXy
25-11-2009, 13:15
Ciao a tutti
devo estrarre da una stringa HTML tutti i commenti
quindi devo estrapolare tutte le sottostringhe che iniziano con "<!--" e finiscono con "-->".
ho già provato a programmare varie regexp ma ancora non sono riuscito nel mio intento.
mi date una mano? :)
SerMagnus
26-11-2009, 08:49
così su due piedi mi verrebbe da usare questo pattern
/<!--(.*)-->/
ma nn ti assicuro niente.. :P anzi fammi sapere se l'ho azzaccato :asd:
Puoi fare così:
preg_match_all("/<!--[^(-->)]*-->/",$stringa_html,$res);
In $res hai tutto quello che ti occorre. Puoi verificarlo con print_r($res);
ToO_SeXy
27-11-2009, 13:26
così su due piedi mi verrebbe da usare questo pattern
/<!--(.*)-->/
ma nn ti assicuro niente.. :P anzi fammi sapere se l'ho azzaccato :asd:
Puoi fare così:
preg_match_all("/<!--[^(-->)]*-->/",$stringa_html,$res);
In $res hai tutto quello che ti occorre. Puoi verificarlo con print_r($res);
Funzionano entrambe ma non ottengo ciò che voglio.
l'array risultante é formattato cosi
Array =>
(
[0] => Array
(
[0] => <!-- Prova --><!-- Ciao --><!-- Bau -->
)
)
mentre mi occorrerebbe un array tipo questo:
Array =>
(
[0] => Prova
[1] => Ciao
[2] => Bau
)
PS: lo stesso vostro risultato può essere ottenuto con questa regexp + contenuta
/<!--.*-->/
Ciao e grazie delle risposte :)
astorcas
27-11-2009, 14:28
Credo tu abbia bisogno dei lookahead e lookbehind:
uina cosa tipo
(?<=\<!-- )[\w]*(?= --\>)
potrebbe bastare
Nel tuo post avevi chiesto le stringe che iniziano per <!-- e finiscono per -->, e quello fa la regex che ho scritto.
Se vuoi solo il testo all'interno dei tag, devi usare:
preg_match_all("/<!--([^(-->)]*)-->/",$stringa_html,$res);
Puoi verificare l'output con:
print_r($res[1]);
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.