【问题标题】:how to count href with underscore using regex如何使用正则表达式计算带下划线的href
【发布时间】:2015-11-08 19:28:23
【问题描述】:

我想检查任何链接是否包含下划线。我想计算包含多少个hrefs _

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

如果字符串包含&lt;a id="HyperLink1" href="http://www.sample_1.com"&gt;HyperLink&lt;/a&gt;

输出 - 1 个下划线链接

【问题讨论】:

  • 使用 HTML 解析器:对于 C#,您有多种选择:HtmlAgilityPack、CSQuery、AngleSharp... 然后使用 CSS 选择器:a[href*=_]

标签: c# asp.net regex


【解决方案1】:

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

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

你可以试试下面的

https://regex101.com/r/gF7bE8/1

<a.*href\s{0,}=\s{0,}".*_.*".*>(.*)<\/a>

如果找到任何匹配,则意味着 html 在 a 的 href 中包含“_”。否则没有。

【讨论】:

  • 可能是因为problem 这样做。顺便提一句。你的正则表达式不起作用。您自己的示例比请求的链接匹配更多。另一方面,它不起作用:see here 没有包含下划线的链接,但您的正则表达式匹配。
  • @Verarind 哦,我明白了.. 嗯,对。谢谢纠正我..让我知道我的错误..!!
猜你喜欢
  • 1970-01-01
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多