正则表达式匹配链接文本&列表中的网址

时间:2016-09-01 14:58:43

标签: regex vb.net

我有一个html列表作为String,其中每个元素只包含一个链接。

我想提取网址

的网址和文字

清单:

<ul id="list-id">
    <li><a href="match this">match this too</a></li>
    <li><a href="match this">match this too</a></li>
    <li><a href="match this">match this too</a></li>
</ul>

这是我得到的正则表达式,只匹配最后一个链接:

/<ul id=['"]list-id['"]>\s*(?:<li><a href=['"]([^'"]+)['"]>([^<]+)<\/a><\/li>\s*)*<\/ul>/i

Regex101

2 个答案:

答案 0 :(得分:0)

您可以捕获网址和名称,可以重复使用$ 1,$ 2 ...

https://regex101.com/r/zW0jR1/4

新版正则表达式.+href="(.+)">(.+)<

答案 1 :(得分:0)

您可以使用此/<li><a href="(.*)">(.*)<\/a><\/li>/

然后您可以运行scan方法。

string = '<ul id="list-id">
           <li><a href="match this">match this too</a></li>
           <li><a href="match this">match this too</a></li>
           <li><a href="match this">match this too</a></li>
         </ul>'

string.scan(/<li><a href="(.*)">(.*)<\/a><\/li>/)

这会返回一个二维数组

[["match this", "match this too"], 
 ["match this", "match this too"], 
 ["match this", "match this too"]]