使用正则表达式获取与其关联的链接和文本(锚标记)

时间:2015-12-29 12:30:54

标签: regex vb.net parsing

我创建了一个正则表达式字符串,我希望在html页面中同时获得链接和相关文本。例如,如果我有一个链接,例如:

<a href='www.la.com/magic.htm'>magicians of los angeles</a>

然后我想要的链接是&#39; www.la.com/magic.htm'我想要的文字是洛杉矶的魔术师。

我使用了以下正则表达式:

strsearch = "\<a\s+(.*?)\>(.*?)\</a\s*?\>|"

但是我的vb程序告诉我,我的比赛太多了。 regEx表达式有问题吗?

圆括号是为了获得&#39;组&#39;可以反向引用。 感谢

2 个答案:

答案 0 :(得分:1)

这个怎么样:

\<a href=.+\</a>

剩下要做的就是遍历每个匹配并使用常规字符串操作提取子字符串。

检查here(虽然regexr遵循javascript正则表达式实现,但它在我们的场景中仍然有用)

话虽如此,我经常看到有人说正则表达式不适合解析Html。您可能需要使用Html Parser。你有HtmlAgilityPack,不再维护,还有AngleSharp,我知道推荐。

答案 1 :(得分:0)

我尝试了以下模式,它有效。

\<a href=(.*?)\>(.*?)\<\/a\s*?\>|

还在原始字符串中发现了两个错误:

  • 错过了/ a
  • 上的转义语法
  • 捕获保留字'href' 第一组

最后,我想推荐一个很棒的网站来测试REGEX字符串。它可以帮助您快速调试。参考这个(也展示你想要的结果): REGEX101