2009-09-03 17 views
19

Ich entwickle eine Anwendung in .NET, wo der Benutzer Reguläre Ausdrücke zur Verfügung stellen kann, die anschließend verwendet werden, um Eingabedaten zu validieren.Wie validiere ich einen regulären Ausdruck?

Ich brauche eine Möglichkeit zu wissen, ob ein regulärer Ausdruck tatsächlich für die .net Regex-Engine gültig ist.

Vielen Dank für jede Hilfe versuchen

Antwort

30

einfach den gegebenen Regex zu kompilieren. Sie können das tun, indem Sie das Regex-Objekt erstellen und das Muster an es übergeben. Hier ist ein Beispielcode:

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

Das ist der Ansatz, den ich derzeit verwende. Das Problem ist, dass ich einen try {} catch {} -Block verwende. Ich wollte wissen, ob es dafür keine Ausnahme gibt. Danke trotzdem –

+2

Es ist nur die Art, wie die Regex-Klasse in .NET entworfen wurde - um zu überprüfen, ob ein Muster gültig ist, müssen Sie es kompilieren und sehen, ob irgendwelche Ausnahmen ausgelöst werden. Ich habe nie etwas anderes gehört. – Paulius

+0

Ugh das ist schwer, wenn Sie es als dynamischen Filter über eine große Sammlung verwenden :( – Sinaesthetic

Verwandte Themen