Какой самый простой способ в C # проверить правильность правильного выражения? - PullRequest
8 голосов
/ 07 февраля 2010

Есть ли в C # простой способ проверить, является ли регулярное выражение регулярным выражением? Другими словами, я хотел бы проверить, является ли предоставленный пользователем шаблон регулярных выражений искаженным или нет. Это чисто синтаксический тест, а не то, что предполагается для регулярного выражения / test. Спасибо

Ответы [ 3 ]

6 голосов
/ 07 февраля 2010

Вы можете попробовать передать его конструктору Regex и поймать потенциал ArgumentException , который выдается, если аргумент является искаженным регулярным выражением.

2 голосов
/ 07 февраля 2010

Вот пример из C # Online .NET , который использует исключения:

EDIT:

Удален код, чтобы уважать владельцев авторских прав, на всякий случай. Просто нажмите на ссылку выше, чтобы увидеть его.

1 голос
/ 07 февраля 2010

Я должен сказать, это не звучит хорошо. Чрезвычайно небольшая группа пользователей компьютеров, которые могли бы правильно вводить регулярные выражения, вероятно, также следует доверять для правильной интерпретации сообщения об исключении. Попытка проверить правильность их записи и сделать ее неправильной будет достаточным основанием для того, чтобы они просто сошли с ума и удалили вашу программу.

Если опытные программисты не являются вашим целевым клиентом, обязательно избегайте регулярных выражений.

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