gpt4 book ai didi

c# - 查找 Regex.Match 失败的地方

转载 作者:行者123 更新时间:2023-11-30 16:51:31 25 4
gpt4 key购买 nike

我想知道哪个 Regex Groupcollection 匹配失败。

例如:

我的模式检测 VIEW start pageVIEW end 通过:

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

我想知道如果我给输入字符串为“VIEW go”如何发现第二组失败。

最佳答案

您不必检查后一组来验证您的正则表达式是否匹配某些内容。

该方法返回的Match 对象允许您使用以下方法进行检查:

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

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

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

在线查看demo .

更新

如果你想细化错误信息,你可以尝试这样的事情:

match = Regex.Match(string, @"^VIEW\s+(?:(start\s+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 失败的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33772385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com