验证正则表达式而不捕获异常?

时间:2009-11-19 12:39:39

标签: c# .net regex

在.NET应用程序(用C#编写)中,我有一个带有列表的UI和一个用于输入过滤字符串的文本框,用于过滤列表中显示的内容。我在用户输入时刷新过滤器。

我现在想允许在过滤字符串中使用正则表达式,这会产生问题。当用户键入表达式时,它可能是无效的,例如在键入开始括号的时间和键入右括号的时间之间。使用无效表达式新建正则表达式会引发异常,我想阻止这种情况。一种方法是捕获异常,但我想知道是否有某种方法可以检查表达式是否是一个有效的正则表达式而不实际尝试使用它创建一个正则表达式。

2 个答案:

答案 0 :(得分:5)

抓住异常。鉴于这将响应用户输入而发生,绝对没有显着的性能损失。

答案 1 :(得分:1)

我会有一个特殊的开始字符,用户输入该字符表示他们正在启动正则表达式,此时您可以停止对键入文本的实时处理,直到输入特殊的结束字符,此时您将新建和应用正则表达式。