我创建了一个正则表达式字符串,我希望在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;可以反向引用。 感谢
答案 0 :(得分:1)
这个怎么样:
\<a href=.+\</a>
剩下要做的就是遍历每个匹配并使用常规字符串操作提取子字符串。
检查here(虽然regexr遵循javascript正则表达式实现,但它在我们的场景中仍然有用)
话虽如此,我经常看到有人说正则表达式不适合解析Html。您可能需要使用Html Parser。你有HtmlAgilityPack,不再维护,还有AngleSharp,我知道推荐。
答案 1 :(得分:0)
我尝试了以下模式,它有效。
\<a href=(.*?)\>(.*?)\<\/a\s*?\>|
还在原始字符串中发现了两个错误:
最后,我想推荐一个很棒的网站来测试REGEX字符串。它可以帮助您快速调试。参考这个(也展示你想要的结果): REGEX101