求一个正则,请高手帮忙
有一段HTML源码
<li class="ro1" style="width:350px"><a href="/Html/new/15/15840/Index.html">[分类]</a> <a class="f14" href="/new/15840/Index.aspx">孙中山故居</a> <a href="/Html/new/15/15840/4266787.html" target="_blank">南方现大雨天气</a></li>
现在我想取出如下内容易
/Html/new/15/15840/Index.html 注:第一个href
/new/15840/Index.aspx 注:第二个href
孙中山故居 注:标题
我想取出上面三个内容,用JS与正则,请问可以做到吗
------解决方案--------------------不用正则吧!直接用js取得
var hrefs = $("a").attr("href");
这里的hrefs就是所用a标签的href值,数组你可以通过下标取值
------解决方案--------------------
/<a[^>]*href="([^"]*?)">([\s\S]*?)<\/a>/g
------解决方案--------------------一个正则也是可以的:
/<li\sclass=(['"]?)ro1\1[^>]*?>\s*(<a[^>]*?href=(['"])[^'"]+\2[^>]*?>([^<>]+)<\/a>[^<>]+){2}/gi
------解决方案--------------------JScript code
<script>
var str = '<li class="ro1" style="width:350px">\
<a href="/Html/new/15/15840/Index.html">[分类]</a> \
<a class="f14" href="/new/15840/Index.aspx">孙中山故居</a>\
<a href="/Html/new/15/15840/4266787.html" target="_blank">南方现大雨天气</a>\
</li>';
alert(str.replace(/^[\S\s]*?href="?([^"]+)[\S\s]*href="?([^"]+)"?\s*>([^<]+)[\S\s]*$/gi, "$1\n$2\n$3"))
</script>