[Tech] regexp per tag html
paolo palmerini
paolo@palmerini.org
Mar 1 Giu 2004 20:45:15 CEST
On 06/01/04 16:09:04, Cosimo Vagarini wrote:
>> On Tue, 1 Jun 2004, paolo palmerini wrote:
>>> devo sostituire una stringa $old in un'altra $new all'interno del
>>> testo
>>> contenuto in una pagina HTML, quindi tutto il testo che non si
>>> trovi
>>> dentro tag html. come posso scrivere un'espressione regolare che
>>> individui il testo fuori dai tag?
>
> Un po' difficile da capire, ma hai un solo tag? una intera pagina
> html?
> devi sostituire tutto? solo qualcosa? :)))
>
non fate i furbini facendo domande per trovare altre soluzioni.... sono
sicuro che avete capito benissimo ;-))
voglio un'espressione regolare che identifichi le parti di testo non
incluse in un tag html, ovvero testo che non si trovi compreso fra i
caratteri "<" e ">".
pero' mi spiego meglio ugualmente... ho una pagina php che legge un
file html e lo restituisce sullo stdout. diciamo che devo operare sul
file pippo.html, cambiando ogni occorrenza di $old in $new nelle parti
di testo fuori dai tag: tipo questo frammento:
<?php
$content = file_get_contents("pippo.html");
echo preg_replace("/$old/","$new",$content);
?>
questo ovviamente sostituisce le stringhe senza curarsi dei tag, il che
mi "scompiglia" l'html se provo ad operare su delle stringhe corte o
del testo che compare anche nei tag.
il problema è che non saprei come esprimere il pattern, a parte la
sintassi, ma non saprei descrivere neanche a parole come deve essere
fatto.
ho cercato un po', e ho trovato pattern che matchano i tag (per esempio
per rimuoverli e fare un semplice html2text, come indica cosimo con vi
>
> :1,$s/<[^\/].*>\(.*\)<\/.*>/\1/g (cosi' strippi solo i tags)
>
ma io avrei bisogno di una cosa un po' diversa.
ovviamente posso anche trovare altre soluzioni. la domanda a questo
punto forse è solo accademica. mi domando: è possibile che con le
espressioni regolari non si riesca ad esprimere quello che voglio??
so già che la risposta è: si, si può fare cosi.....
grazie
p.
--
paolo palmerini
http://palmerini.org
Maggiori informazioni sulla lista
flug-tech