我有一个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
答案 0 :(得分:0)
答案 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"]]