Quantificatori

I quantificatori permettono ad un'espressione regolare di corrispondere ad un numero specificato di caratteri o di caratteri di una classe, o di sotto-modelli.

I quantificatori sono racchiusi da parentesi graffe ({ e }), ed hanno la forma generale {[ripetizioni-minime][,[ripetizioni-massime]]}

L'uso è spiegato meglio con degli esempi:

{1}

Esattamente una ripetizione

{0,1}

Zero o una ripetizione

{,1}

La stessa cosa, ma con meno lavoro...

{5,10}

Almeno cinque ripetizioni, ma meno di dieci.

{5,}

Almeno cinque ripetizioni, nessun massimo.

Inoltre esistono alcune abbreviazioni:

* (asterisco)

simile a {0,}, trova un numero qualsiasi di ripetizioni.

+ (segno più)

simile a {1,}, almeno una presenza.

? (punto interrogativo)

simile a {0,1}, presente al massimo una volta.

Ingordigia

Quando si usano quantificatori senza massimo, le espressioni regolari cercano normalmente di adattarsi all'estensione più lunga di caratteri della stringa esaminata; questo comportamento è normalmente noto come ingordigia.

IL software per le espressioni regolari moderno fornisce dei metodi per «eliminare l'ingordigia», anche se in un ambiente grafico è l'interfaccia a fornire il metodo di accesso a questa funzione. Per esempio, una finestra di ricerca che permette l'uso di espressioni regolari potrebbe avere una casella marcata «Corrispondenza minimale» per indicare se l'ingordigia è il comportamento predefinito.

Esempi in contesto

Ecco alcuni esempi che usano quantificatori

^\d{4,5}\s

Corrisponde ai numeri in «1234 vai» e «12345 ora», ma non a «567 undici», né a «223459 qualcosa»

\s+

Corrisponde ad uno o più caratteri di spaziatura

(bla){1,}

Corrisponde a tutta la stringa «blablabla» e a «bla» in «blasone» o in «cablato»

/?>

Corrisponde a «/>» in «<closeditem/>» ed anche a «>» in «<openitem>».