我允许用户输入正则表达式以匹配IP地址,以便在相关系统中进行IP过滤.我想验证输入的正则表达式是否有效,因为很多用户会弄乱op,尽管有良好的意图.
我当然可以在try/catch中做一个Regex.IsMatch(),看看它是否会爆炸,但有没有更智能的方法呢?速度不是一个问题,我只是宁愿避免无缘无故抛出异常.
我想知道在RegEx类中是否存在任何方法来检查表达式是否具有有效语法.
我不是说正则表达式匹配字符串或类似的东西,那么"IsMatch"或"Success"方法对我没有帮助.
要理解我,例如在使用RegEx.Match带有此表达式的方法时,它会抛出异常,因为表达式的语法无效:
"\\\"
Run Code Online (Sandbox Code Playgroud)
(没有双引号)
我检查了正则表达式类方法,但我找不到任何像"tryparser".
然后检查表达式是否具有有效的语法我正在这样做:
Try
Regex.Match(String.Empty, "\")
Return True
Catch
Return False
End Try
Run Code Online (Sandbox Code Playgroud)
只是我想知道我是否可以通过直接从regex类中的方法返回值或将regex类方法的结果转换为boolean 来简化代码.
更新:
我在执行时创建了RegEx,对我的外部工具没有帮助.
