[11] Posso usare le espressioni regolari di Perl per fare il match di testo bilanciato?
regex, fare il match di testo bilanciato regexp, fare il match di testo bilanciato
espressione regolare, fare il match di testo bilanciato
Storicamente, le espressioni regolari di Perl non erano in grado di fare
il match di testo bilanciato. Dalle più recenti versioni di perl,
inclusa la 5.6.1, sono state aggiunte caratteristiche sperimentali che
rendono possibile la sua realizzazione. Consultate la documentazione per il
costrutto (??{ }) nelle recenti pagine di perlre per vedere un esempio di
parentesi bilanciate che eseguono un match. Assicuratevi di prestare
speciale attenzione agli avvertimenti presenti nel manuale prima di
utilizzare questa caratteristica.
CPAN contiene molti moduli che possono essere utili per effettuare match
di testo dipendenti dal contesto. Damian Conway fornisce alcuni utili
pattern in Regexp::Common. Il modulo Text::Balanced fornisce una soluzione
generale a questo problema.
Una delle comuni applicazioni del match di testo bilanciato è
lavorare con XML e HTML. Sono a disposizione molti moduli che supportano
queste esigenze. Due esempi sono HTML::Parser e XML::Parser. Ce ne sono
molti altri.
Un'elaborata subroutine (esclusivamente per ASCII a 7 bit) per estrarre
singoli caratteri bilanciati ed eventualmente annidati, come ` e ',
{ e } oppure ( e ), può essere trovata all'indirizzo
http://www.cpan.org/authors/id/TOMC/scripts/pull_quotes.gz .
Il modulo C::Scan su CPAN contiene anch'esso tali subroutine per uso
interno, ma non sono documentate.
Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan
Torkington. Tutti i diritti riservati.
Questa documentazione è libera; puoi ridistribuirla e/o
modificarla secondo gli stessi termini applicati al Perl.
Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di
codice in questo file sono rilasciati al pubblico dominio. Potete, e
siete incoraggiati a farlo, utilizzare il presente codice o qualunque
forma derivata da esso nei vostri programmi per divertimento o per profitto.
Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese
ma non è obbligatorio.
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per
porre quesiti di tipo tecnico, per rimanere aggiornato su meeting,
incontri, manifestazioni e novità su Perl.it. Iscriviti!