如何计算由ASP.Net MVC中的正则表达式捕获的匹配数?

时间:2019-07-02 03:40:39

标签: c# .net regex asp.net-mvc

我在计算正则表达式捕获的匹配数时遇到问题,因为它没有计数功能。

这是我的代码:

 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,但它只计算具有匹配项的字符串的长度。您对此有任何建议或解决方法吗?

2 个答案:

答案 0 :(得分:1)

MatchCollection matches = pathRegex.Matches(url);
var count = matches.Count;

Regex Class

答案 1 :(得分:1)

Regex.Match仅将第一个匹配项作为单个Match对象返回。 Ref。 因此,Count不可用,if (result.Success)足以满足您的情况。

如果您需要多个匹配项,则需要Regex.Matches来返回MatchCollection。