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:
<(?<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:
<(iframe|textarea)(s+.*?)?/?>