C#学习教程:找到Regex.Match失败的地方分享


找到Regex.Match失败的地方

我想知道哪个Regex Groupcollection无法匹配。

例如:

我的模式通过以下方式检测VIEW start pageVIEW end

 match = Regex.Match(string, @"(^VIEW)s*((?(1)(?:(start)s*((?(1)page$))|(end$))))"); 

我想知道我是否将输入字符串作为“VIEW go”如何找到第二组失败。

您不必检查后一组以validation您的正则表达式是否与某些内容匹配。

方法返回的匹配对象允许您使用以下方法检查:

 if ( match.Success ) Console.Write("Success!"); else Console.Write("Expected start page or end after VIEW"); 

为了您的目的,您还可以简化您的正则表达式:

 match = Regex.Match(string, @"^VIEWs+(?:starts+page|end)$"); 

请参阅在线演示 。

UPDATE

如果要优化错误消息,可以尝试以下方法:

 match = Regex.Match(string, @"^VIEWs+(?:(starts+page|end)|(.*))$"); if (match.Success) { if ( match.Groups[1].Success) Console.Write("Success!"); if ( match.Groups[2].Success) Console.Write("Expected start page or end after VIEW"); } else { Console.Write("usage: VIEW [start page|end]"); } 

在ideone上运行代码演示

上述就是C#学习教程:找到Regex.Match失败的地方分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/960226.html

发表评论

邮箱地址不会被公开。 必填项已用*标注