Есть ли регулярное выражение соответствия или исключения в .NET? - PullRequest
2 голосов
/ 22 июля 2010

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

var val = Regex.Match("nomatchplz", "notgoingtomatch(.*)").Groups[1].Value;

Ответы [ 3 ]

7 голосов
/ 22 июля 2010

Функция Regex.Match возвращает объект Match. Он обладает функциональностью, которую вы ищете. Но вы должны бросить исключение самостоятельно

    Match x = Regex.Match("","");
    if (!x.Success)
    {
        throw new Exception("My message");
    }
1 голос
/ 22 июля 2010

Разве .Value уже не генерирует исключение NullReferenceException, поскольку Group [1] имеет значение false? Или Group [1] уже вызывает ArgumentOutOfRangeException, поскольку индексатор не может быть разрешен?

0 голосов
/ 22 июля 2010

Самый простой способ - проверить результат регулярного выражения и бросить, если совпадений не найдено. Если я не понимаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...