-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


indietro

[12] Cosa significa che un'espressione regolare è avida (greedy)? Come posso evitarlo? greedy avida

La maggior parte delle persone pensano che le espressioni regolari avide effettuino più match possibili. Tecnicamente parlando, sono effettivamente i quantificatori (?, *, +, {}) ad essere avidi, piuttosto che l'intero pattern; il Perl preferisce un'avidità locale e un'immediata gratificazione rispetto ad una avidità generale. Per ottenere versioni non avide degli stessi quantificatori, usate (??, *?, +?, {}?).

Un esempio:

        $s1 = $s2 = "Ho molto molto freddo";
        $s1 =~ s/mo.*o //;      # Ho freddo
        $s2 =~ s/mo.*?o //;     # Ho molto freddo

Notate come la seconda sostituzione abbia fermato il match non appena ha trovato "o ". Il quantificatore *? in realtà dice al motore delle espressioni regolari di trovare una corrispondenza il più presto possibile e di passare il controllo a qualsiasi cosa si trovi nella linea che segue, come fareste se steste giocando con una patata bollente.

vedi in inglese

AUTORE E COPYRIGHT

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.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
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!
D:
Annunci Google