Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Le espressioni regolari per modificare il codice HTML
Scritto da Rocco Galati il 19-10-2011 ore 11:37
Intel Cluster Studio XE
Il linguaggio HTML è lo strumento più utilizzato per la realizzazione di pagine web e di documenti ipertestuali in genere. Solitamente, ogni elemento HTML è definito per mezzo di una coppia di tag, che vengono aperti e chiusi per delimitare dei contenuti; tuttavia, alcuni browser non richiedono il tag finale di terminazione e la versione XHTML include il simbolo di chiusura /> direttamente nel tag iniziale. Non di meno, può succedere che gli attributi per un elemento non vengano necessariamente racchiusi dalle virgolette semplici e che vengano preceduti unicamente dal simbolo di uguaglianza.

Questi diversi comportamenti rendono problematico il parsing di file contenenti codice HTML e occorre definire un parser personalizzato che soddisfi le proprie esigenze. A tal proposito, Paulo Morgado ha proposto una soluzione basata sull'utilizzo delle espressioni regolari, che è possibile modificare per adattarla a diverse situazioni.

Ad esempio, per identificare una coppia di tag particolari, è possibile ricercare nel codice tutti i tag che iniziano per l'istruzione desiderata, considerare eventuali caratteri di spazio vuoto e inserire nel parsing il simbolo di chiusura; successivamente includere ogni carattere che è presente dopo sino all'individuazione del tag di chiusura finale.

Per trovare il tag <iframe>contenuto</iframe>, si dovrebbe, quindi, utilizzare questa espressione regolare:
  1. <(?<t>iframe)(s+.*?)?>.*?</k<t>>
La sequenza <t> serve a referenziare la stringa specificata immediatamente dopo senza doverla scrivere nuovamente per il tag di chiusura.

La stessa tecnica può essere utilizzata con successo per identificare i tag singoli senza la terminazione; in questo caso, se si volesse trovare l'occorrenza del tag <iframe /> e del tag <textarea /> bisognerebbe far ricorso a questa sequenza:
  1. <(iframe|textarea)(s+.*?)?/?>
Precedente: Il tema delle eccezioni in PHP
Successiva: Come descrivere un bug, alcuni elementi essenziali
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.267 secondi.