Проверка регулярного выражения без перехвата исключения? - PullRequest
1 голос
/ 19 ноября 2009

В приложении .NET (написано на C #) у меня есть пользовательский интерфейс со списком и текстовым полем, используемым для ввода строки фильтра для фильтрации того, что отображается в списке. Я обновляю фильтр, когда пользователь вводит.

Теперь я хочу разрешить использование регулярных выражений в строке фильтра, что создает проблему. Когда пользователь вводит выражение, оно может быть недействительным, например, между временем, когда вводится открывающая скобка, и временем, когда вводится закрывающая скобка. Обновление регулярного выражения с недопустимым выражением вызывает исключение, и я хочу предотвратить это. Один из способов - перехватить исключение, но мне было интересно, есть ли какой-нибудь способ проверить, является ли выражение допустимым регулярным выражением, фактически не пытаясь добавить в него новое выражение.

Ответы [ 2 ]

5 голосов
/ 19 ноября 2009

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

1 голос
/ 19 ноября 2009

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

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