Quantificatori

I quantificatori consentono di specificare ripetizioni di caratteri singoli o di sequenze di caratteri all'interno dei modelli, come illustrato di seguito:

Metacarattere quantificatore

Descrizione

* (asterisco)

Corrisponde a una ripetizione di zero o più volte del carattere precedente.

+ (più)

Corrisponde a una ripetizione di una o più volte del carattere precedente.

? (punto di domanda)

Corrisponde a una ripetizione di zero o una volta del carattere precedente.

{n}

{n,}

e

{n,n}

Specifica una quantità numerica o un intervallo di numeri per l'elemento precedente:

/A{27}/ corrisponde al carattere A ripetuto 27 volte.

/A{3,}/ corrisponde al carattere A ripetuto 3 o più volte.

/A{3,5}/ corrisponde al carattere A ripetuto da 3 a 5 volte.

Un quantificatore può essere applicato a un unico carattere, a una classe di caratteri o a un gruppo:

I quantificatori possono usati anche all'interno di gruppi parentetici a cui sono applicati dei quantificatori. Nell'esempio seguente, il quantificatore corrisponde a stringhe del tipo word e word-word-word:

/\w+(-\w+)*/

Per impostazione predefinita, le espressioni regolari agiscono in modo greedy, vale a dire che ogni porzione di modello dell'espressione regolare (come .*) cerca una corrispondenza con quanti più caratteri possibili nella stringa prima di lasciare il posto alla porzione successiva dell'espressione. Si consideri, ad esempio, l'espressione regolare e la stringa seguenti:

var pattern:RegExp = /<p>.*<\/p>/;
str:String = "<p>Paragraph 1</p> <p>Paragraph 2</p>";

L'espressione regolare corrisponde all'intera stringa:

<p>Paragraph 1</p> <p>Paragraph 2</p>

Supponiamo, tuttavia, che si desideri individuare una corrispondenza solo per un gruppo <p>...</p>. Per ottenere questo risultato, procedere come segue:

<p>Paragraph 1</p>

Aggiungere un punto di domanda (?) dopo i quantificatori che si desidera trasformare in quantificatori lazy. L'espressione regolare dell'esempio seguente, che usa il quantificatore lazy *?, cerca una corrispondenza con <p> seguito dal minimo numero di caratteri possibili, seguito da </p>:

/<p>.*?<\/p>/

Tenere presenti gli aspetti seguenti dei quantificatori:

Per ulteriori informazioni, vedere Flag s (dotall).


Flash CS3

 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/main/00000116.html