Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#中,验证正则表达式是否格式正确的最简单方法是什么?_C#_Regex - Fatal编程技术网

在C#中,验证正则表达式是否格式正确的最简单方法是什么?

在C#中,验证正则表达式是否格式正确的最简单方法是什么?,c#,regex,C#,Regex,在C#中有没有简单的方法来测试正则表达式是否是正则表达式?换句话说,我想检查用户提供的正则表达式模式是否格式错误。这纯粹是一个语法测试,而不是正则表达式应该实现/测试的功能。谢谢,您可以尝试将其传递给并捕获可能的,如果参数是格式错误的正则表达式,则会引发该可能的错误。以下是使用异常的示例: 编辑: 删除代码以尊重版权所有者,以防万一。只需点击上面的链接即可查看。我不得不说,这听起来不太好。能够正确输入正则表达式的极少数计算机用户也应该被信任能够正确解释异常消息。试图验证他们的输入,并将其弄错,这

在C#中有没有简单的方法来测试正则表达式是否是正则表达式?换句话说,我想检查用户提供的正则表达式模式是否格式错误。这纯粹是一个语法测试,而不是正则表达式应该实现/测试的功能。谢谢,您可以尝试将其传递给并捕获可能的,如果参数是格式错误的正则表达式,则会引发该可能的错误。

以下是使用异常的示例:

编辑:


删除代码以尊重版权所有者,以防万一。只需点击上面的链接即可查看。

我不得不说,这听起来不太好。能够正确输入正则表达式的极少数计算机用户也应该被信任能够正确解释异常消息。试图验证他们的输入,并将其弄错,这将足以让他们发疯并卸载您的程序


如果有经验的程序员不是您的目标客户,请务必避免使用regex。

您是说应用程序不应该处理异常吗?(这将导致其终止)?对我来说这听起来更糟。我同意,但不幸的是我不能改变要求。这用于用户可配置的业务规则引擎,而正则表达式仅用于覆盖某些潜在的边缘情况。@zoman-wow,听起来不太好。业务规则Z不是由程序员输入的。因此,毫无疑问,需要验证正则表达式。下一个失败模式是有效的正则表达式不能正确过滤,但这不是团队的问题。顾客满意度仍然为零。把这篇文章展示给你的宇航员建筑师,这就是我所能做的。祝你好运。带着一个正则表达式*脸上洋洋得意的表情*说真的,为什么这个问题有8票?文档清楚地表明,如果解析正则表达式时出错,将引发
ArgumentException
。@JulianR:正则表达式语言本身不是正则语言。您至少需要一个下推自动机来识别regexp。@Eric Lippert-我是在开玩笑:)@Cory:可能是因为依赖异常处理控制流是一种糟糕的编程实践。如果可以避免异常,则应该避免异常,尤其是在验证用户提供的数据时。例外情况应适用于例外情况,用户输入错误也不例外。