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. |