正则表达式href最小长度

时间:2014-05-15 16:16:13

标签: .net regex parsing

我需要获取所有' a'的href属性值(大于特定长度)。 HTML文件中的元素。我做了这样的事情;

<a.*href\s*=\s*"(?<link>.{15,})".*>

但它无法正常工作。有什么建议?

1 个答案:

答案 0 :(得分:1)

以下几种方法可以避免在标记内捕获多个字段:

尝试使量词非贪婪。 {15,}?代替{15,}。这样它就会停在第二个双引号,而不是在<a />标记内捕获更多字段。

更好的选择是使用更具限制性的内容替换量词前面的全部.。尝试使用专用字符类,例如[^\s]{15,}将查找至少15个连续的非空白字符。

到目前为止,这两种方法都适用于我,但请记住,URL可能非常混乱,甚至在野外都会出现格式错误,因此您无法保证抓住所有内容。您对目标网站了解得越多越好。