Condividi tramite


Opzioni di espressioni regolari

Aggiornamento: novembre 2007

È possibile modificare un criterio di espressioni regolari tramite le opzioni che influiscono sul comportamento di corrispondenza. Sono disponibili due modalità di base per l'impostazione delle opzioni di espressioni regolari: è possibile specificare le opzioni all'interno del parametro options nel costruttore Regex(pattern, options), dove options è una combinazione OR bit a bit di valori enumerati di RegexOptions, oppure impostarle all'interno del criterio di espressioni regolari utilizzando il costrutto di raggruppamento inline (?imnsx-imnsx:) o un costrutto (?imnsx-imnsx) appartenente alla categoria dei costrutti vari.

Nei costrutti di opzioni inline un segno meno (-) prima di un'opzione o di un set di opzioni disattiva tali opzioni. Ad esempio, il costrutto inline (?ix-ms) attiva le opzioni IgnoreCase e IgnorePatternWhiteSpace e disattiva le opzioni Multiline e Singleline. Per impostazione predefinita tutte le opzioni di espressioni regolari vengono disattivate.

Nella tabella seguente vengono elencati i membri dell'enumerazione RegexOptions e gli equivalenti caratteri di opzioni inline. Si noti che le opzioni RightToLeft e Compiled si applicano solo a un'espressione intera e non è possibile utilizzarle in modalità inline. È possibile specificare tali opzioni solo all'interno del parametro options sul costruttore Regex. L'uso delle opzioni None e ECMAScript non è consentito in modalità inline.

Membro di RegexOption

Carattere inline

Descrizione

Nessuno

N/D

Specifica che non è stata impostata alcuna opzione.

IgnoreCase

i

Specifica una corrispondenza che non fa distinzione tra maiuscole e minuscole.

Multiline

m

Specifica la modalità multilinea. Modifica il significato di ^ e $ affinché corrispondano all'inizio e alla fine, rispettivamente, di qualsiasi riga, non solo all'inizio e alla fine dell'intera stringa.

ExplicitCapture

n

Specifica che le uniche acquisizioni valide sono rappresentate da gruppi denominati o numerati in modo esplicito con la forma (?<nome>…). In tal modo, le parentesi funzionano come gruppi non di acquisizione senza la complessità sintattica di (?:…).

Compiled

N/D

Specifica che l'espressione regolare sarà compilata in un assembly. Viene generato un codice MSIL (Microsoft Intermediate Language) per l'espressione regolare. In tal modo si ottiene un'esecuzione più rapida a scapito del tempo di avvio.

Singleline

s

Specifica la modalità a riga singola. Modifica il significato del carattere punto (.) affinché corrisponda a tutti i caratteri, anziché a tutti i caratteri ad eccezione di \n.

IgnorePatternWhitespace

x

Specifica che lo spazio vuoto senza caratteri di escape è escluso dal criterio e consente l'immissione di commenti dopo un simbolo di cancelletto (#). Per un elenco dei caratteri spazio di escape, vedere Caratteri di escape. Si noti che uno spazio non è mai eliminato da una classe di caratteri.

RightToLeft

N/D

Specifica che la ricerca viene eseguita da destra verso sinistra, anziché da sinistra verso destra. Un'espressione regolare con questa opzione viene spostata a sinistra della posizione iniziale, anziché a destra. Pertanto è consigliabile specificare la posizione iniziale come la fine della stringa e non come l'inizio. Per impedire la creazione di espressioni regolari con cicli infiniti, non è consentito specificare questa opzione a metà flusso. Tuttavia i costrutti lookbehind (?<) offrono un funzionamento simile che può essere utilizzato come una sottoespressione.

RightToLeft consente di modificare esclusivamente la direzione della ricerca, senza invertire la sottostringa cercata. Le asserzioni lookahead e lookbehind rimangono invariate: lookahead consente di eseguire la ricerca verso destra, mentre lookbehind verso sinistra.

ECMAScript

N/D

Specifica che per l'espressione è stato attivato il funzionamento conforme a ECMAScript. È possibile utilizzare questa opzione solo insieme ai flag IgnoreCase e Multiline. Se si utilizza ECMAScript con qualsiasi altro flag verrà generata un'eccezione.

CultureInvariant

N/D

Specifica che vengono ignorate le differenze linguistiche. Per ulteriori informazioni, vedere Esecuzione di operazioni indipendenti dalle impostazioni cultura nello spazio dei nomi RegularExpressions.

Vedere anche

Altre risorse

Elementi del linguaggio di espressioni regolari