2009-09-03 5 views
19

Я разрабатываю приложение в .NET, где пользователь может предоставлять регулярные выражения, которые впоследствии используются для проверки входных данных.Как проверить регулярное выражение?

Мне нужен способ узнать, действительно ли регулярное выражение действительно для двигателя регулярных выражений .net.

Спасибо за любую помощь

ответ

30

Просто попробуйте скомпилировать данное регулярное выражение. Вы можете сделать это, создав объект Regex и передав ему шаблон. Вот пример кода:

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

Это подход, который я использую сейчас. Проблема в том, что я использую блок try {} catch {}. Я хотел знать, есть ли такой способ исключения. Спасибо, тем не менее, –

+2

Это как раз класс Regex, разработанный в .NET. Чтобы проверить, действительно ли шаблон действителен, вам нужно скомпилировать его и посмотреть, будут ли выбрасываться какие-либо исключения. Я никогда не слышал о другом способе этого. – Paulius

+0

Ух, это сильно засасывает, если вы используете его как динамический фильтр над большой коллекцией :( – Sinaesthetic

Смежные вопросы