我在计算正则表达式捕获的匹配数时遇到问题,因为它没有计数功能。
这是我的代码:
var pathRegex = new Regex(".+?\\:\\/\\/.+? (\\/.+?)(?:#|\\?|$)");
var result = pathRegex.Match(url);
if (!(result.Success))
{
pathRegex = new Regex("/\\/.*/");
result = pathRegex.Match(url);
if (result.Success && result.Length == 1)
{
return result.Value;
}else
{
return "";
}
}
我尝试过result.Length
,但它只计算具有匹配项的字符串的长度。您对此有任何建议或解决方法吗?
答案 0 :(得分:1)
MatchCollection matches = pathRegex.Matches(url);
var count = matches.Count;
答案 1 :(得分:1)
Regex.Match
仅将第一个匹配项作为单个Match对象返回。 Ref。
因此,Count
不可用,if (result.Success)
足以满足您的情况。
如果您需要多个匹配项,则需要Regex.Matches
来返回MatchCollection。