日期:2014-05-16  浏览次数:20371 次

求一个正则,请高手帮忙
有一段HTML源码

<li class="ro1" style="width:350px"><a href="/Html/new/15/15840/Index.html">[分类]</a>&nbsp;<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>&nbsp;\
           <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>