Подтвердить что ты не робот

Недопустимый шаблон регулярного выражения

У меня есть кусок кода в С#, который проверяет, является ли значение допустимым шаблоном регулярного выражения. Код прямолинейный:

     try
   {
      System.Text.RegularExpressions.Regex.IsMatch("", pattern);
   }
   catch (Exception)
   {
       return "pattern matches must be a valid regex value";
   }

Я пытаюсь проверить, работает ли он правильно, но я не могу найти недопустимый шаблон регулярного выражения. hehe

Любые предложения?

4b9b3361

Ответ 1

Это неверно...

[

Вы также можете проверить правильность регулярных выражений в режиме реального времени в http://regexhero.net/tester/

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

Это то, что Regex Hero делает для возврата подробного сообщения об ошибке...

public string GetRegexError(string _regexPattern, RegexOptions _regexOptions)
{
    try
    {
        Regex _regex = new Regex(_regexPattern, _regexOptions);
    }
    catch (Exception ex)
    {
        return ex.Message;
    }

    return "";
}

Ответ 2

Вот пример неправильного выражения:

[0-9]++

Ответ 3

Попробуйте следующее:

*

BTW, в Java существует метод компиляции строки в шаблон, и она генерирует исключение с точной диагностикой ошибок.