C# 如何使用正则表达式计算带有下划线的href

C# 如何使用正则表达式计算带有下划线的href,c#,asp.net,regex,C#,Asp.net,Regex,我想检查任何链接是否包含下划线。我想数一数有多少个HREF包含_ MatchCollection links = Regex.Matches(html, "(<a.*?>.*?</a>)", RegexOptions.IgnoreCase | RegexOptions.Multiline); lbllinks.Text = "links .Count.ToString() + " links on this website "; MatchCollection li

我想检查任何链接是否包含下划线。我想数一数有多少个HREF包含_

 MatchCollection links = Regex.Matches(html, "(<a.*?>.*?</a>)", RegexOptions.IgnoreCase | RegexOptions.Multiline);
 lbllinks.Text = "links .Count.ToString() + " links on this website ";
MatchCollection links=Regex.Matches(html)(


输出-1下划线链接

如果有人要求用正则表达式解决某个特定问题,我看不出有什么问题

给出使用解析器的建议是另一回事,但投反对票。我不知道为什么

你可以试试下面的方法

(*)

如果找到任何匹配项,则表示html包含a的href中的'.'',否则不包含。

使用html解析器:对于C#,您有多种选择:HtmlAgilityPack、CSQuery、AngleSharp…然后使用CSS选择器:
a[href*=.]
可能是因为这样做很困难。顺便说一句,你的正则表达式不起作用。你自己的示例比请求的链接匹配得多。另一方面,它不起作用:没有包含下划线的链接,但你的正则表达式匹配。@Verarind哦,我明白了。。嗯,好的。谢谢你纠正我。。让我知道我的错误!!
<a.*href\s{0,}=\s{0,}".*_.*".*>(.*)<\/a>