首页 新闻 搜索 专区 学院

求一个正则表达式取ul下面li的集合

0
悬赏园豆:5 [已解决问题] 解决于 2019-08-14 11:13

样例字符串:

.....

<div>等你等等你</div>

<h2>xxx</h2>

<ul class="mlist">

<li>alsjdflasjlfdjlasdfjjsadfjalsfj<span>张三</span><a href="xxxxxx"></a></li>

<li>alsjdflasjlfdjlasdfjjsadfjalsfj<span>张三</span><a href="xxxxxx"></a></li>

<li>alsjdflasjlfdjlasdfjjsadfjalsfj<span>张三</span><a href="xxxxxx"></a></li>

<li>alsjdflasjlfdjlasdfjjsadfjalsfj<span>张三</span><a href="xxxxxx"></a></li>

</ul>

<div class="answercount">

        <div class="diggit">

            <div class="diggnum unanswered">0</div>

            <div class="diggword">回答数</div>

        </div>

        <div class="clear">

        </div>

    </div>

 

我要的数据是ul class="mlist" 下面的li的集合,如:

<li>alsjdflasjlfdjlasdfjjsadfjalsfj<span>张三</span><a href="xxxxxx"></a></li>

<li>alsjdflasjlfdjlasdfjjsadfjalsfj<span>张三</span><a href="xxxxxx"></a></li>

<li>alsjdflasjlfdjlasdfjjsadfjalsfj<span>张三</span><a href="xxxxxx"></a></li>

<li>alsjdflasjlfdjlasdfjjsadfjalsfj<span>张三</span><a href="xxxxxx"></a></li>`

黑山妖的主页 黑山妖 | 初学一级 | 园豆:4
提问于:2017-11-14 17:28
< >
分享
最佳答案
1

<ul[^>]+>\s+(<li>.+<\/li>\s+)+<\/ul>

收获园豆:5
并排逗比北边跑 | 初学一级 |园豆:15 | 2017-11-14 18:02

我觉得用一些语法类似jQuery的开源组件会更方便点

 

<ul[^>]*>\s*(?:<li[^>]*>(?:[^<]+<[^li])+li>\s*)+<\/ul>

 

https://regex101.com/r/Wn94sv/1

并排逗比北边跑 | 园豆:15 (初学一级) | 2017-11-15 10:58

@并排逗比北边跑: 这玩意我是一点也不会啊,这样取出来怎么在取里面的li的集合啊

黑山妖 | 园豆:4 (初学一级) | 2017-11-15 12:03

@黑山妖: https://stackoverflow.com/questions/20965477/how-can-i-extract-certain-html-tags-e-g-ul-using-regex-with-preg-match-all-in

并排逗比北边跑 | 园豆:15 (初学一级) | 2017-11-15 12:50
其他回答(1)
0

楼上正解。为了预防页面中有其他<li>,只能先连<ul>取出来,第二次在通过<li>.+<\/li>匹配

龙葛格 | 园豆:772 (小虾三级) | 2017-11-14 19:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册