请问正则如何取出指定UL标签里的所有li文本内容?

<ul id='e5e'>
<li><a>e5e1</a></li>
<li><a>e5e2</a></li>
</ul>
<ul id='x6'>
<li><a>x61</a></li>
<li><a>x62</a></li>
</ul>
<ul id='dd2'>
<li><a>dd21</a></li>
<li><a>dd22</a></li>
</ul>

请问用正则表达式取出x61 x62?这个内容是不固定的,现在程序设计只能进行一次表达式计算,不能分步提取。求大神帮忙,谢谢了。

第1个回答  2017-06-19
var getU = function(html, ul_id){
    var reg = new RegExp("[\\s\\S]*<ul[^>]+id[=\"\']+"+ul_id+"[\"\']?[^>]*>((?:(?!<\/ul>)[\\s\\S])*)<\/ul>[\\s\\S]*","gi");
    var str = html.replace(reg,"$1");
    var regex = /<a>((?:(?!<\/a>)[\s\S])*)<\/a>/gi;
    var arr = [];
    while(regex.exec(str)){
        arr.push(RegExp.$1);
    }
    return arr;
}

var html = "<ul id='e5e'>\r\n<li><a>e5e1</a></li>\r\n<li><a>e5e2</a></li>\r\n</ul>\r\n<ul id='x6'>\r\n<li><a>x61</a></li>\r\n<li><a>x62</a></li>\r\n</ul>\r\n<ul id='dd2'>\r\n<li><a>dd21</a></li>\r\n<li><a>dd22</a></li>\r\n</ul>";

var ul_id = "x6";
var arr = getU (html, ul_id);
console.log(arr);

相似回答