在我的正则表达式中,模式是这样的:
@"Something\(\d+, ""(.+)""(, .{1,5}, \d+, (?<somename>\d+)?\),"
所以我想知道是否<somename>
存在。如果它是一个普通的捕获组,我可以检查捕获组是否大于没有该/那些捕获组的组数,但我在这里没有选项。
谁能帮我找到解决方法?我不需要它高效,它只是用于用于排序的一次性程序,所以我不介意它是否需要运行。它不会用于公共代码。
根据文档:
如果 groupname 不是集合中的捕获组的名称,或者如果 groupname 是输入字符串中未匹配的捕获组的名称,则该方法返回 Group 对象,其 Group.Success 属性为 false 并且其 Group .Value 属性是 String.Empty。
var regex = new Regex(@"Something\(\d+, ""(.+)""(, .{1,5}, \d+, (?<somename>\d+)?\),");
var match = regex.Match(input);
var group = match.Groups["somename"];
bool exists = group.Success;