2009-09-03 13 views
19

Sto sviluppando un'applicazione in .NET in cui l'utente può fornire le espressioni regolari utilizzate in seguito per convalidare i dati di input.Come convalidare un'espressione regolare?

Ho bisogno di un modo per sapere se un'espressione regolare è effettivamente valida per il motore regex .net.

Grazie per qualsiasi aiuto

risposta

30

solo cercare di compilare il data regex. Puoi farlo creando l'oggetto Regex e passando il modello ad esso. Ecco un codice di esempio:

public static bool IsRegexPatternValid(String pattern) 
{ 
    try 
    { 
     new Regex(pattern); 
     return true; 
    } 
    catch { } 
    return false; 
} 
+0

Questo è l'approccio che sto attualmente utilizzando. Il problema è che sto usando un blocco try {} catch {}. Volevo sapere se c'è un modo non eccezionale di farlo. Grazie comunque –

+2

È proprio il modo in cui la classe Regex è progettata in .NET - per verificare se un pattern è valido, è necessario compilarlo e vedere se vengono lanciate eccezioni. Non ho mai sentito nessun altro modo per farlo. – Paulius

+0

Ugh questo fa schifo se lo stai usando come filtro dinamico su una grande collezione :( – Sinaesthetic

Problemi correlati