如何计算 ASP.Net MVC 中正则表达式捕获的匹配数?
Posted
技术标签:
【中文标题】如何计算 ASP.Net MVC 中正则表达式捕获的匹配数?【英文标题】:How to count the number of matches captured by the regex in ASP.Net MVC? 【发布时间】:2019-11-12 15:52:18 【问题描述】:我在计算正则表达式捕获的匹配数时遇到问题,因为它没有计数功能。
这是我的代码:
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
,但它只计算匹配字符串的长度。您对此有什么建议或解决方法吗?
【问题讨论】:
你实际上在做什么?网址验证? 【参考方案1】:MatchCollection matches = pathRegex.Matches(url);
var count = matches.Count;
Regex Class
【讨论】:
【参考方案2】:Regex.Match
仅将第一个匹配项作为单个 Match 对象返回。 Ref。
因此,Count
不可用,if (result.Success)
足以满足您的情况。
如果你想要多个匹配项,你需要Regex.Matches
,它会返回一个 MatchCollection。
【讨论】:
以上是关于如何计算 ASP.Net MVC 中正则表达式捕获的匹配数?的主要内容,如果未能解决你的问题,请参考以下文章