2 agoodchild agoodchild 于 2014.11.28 23:33 提问

正则表达式 html标签匹配 8C

有这样一段html标签
<p style="">aaa**<p>bbb</p>ccc<p>ddd</p>eee</p>**
<p>ffff</p>
我想最终得到的是第一行中从最开始p标签开始到最末端p标签结束,其中可能还包括多个成对出现的p标签例,但不包括下一行的p标签,
应该怎样写呢?
我这样写:<p.*?(<p>.*?</p>)?.*?</p>,最终得到的是<p style="">aaa<p>bbb</p>
求各位高手不吝赐教

注:我只有8个币了。。。

6个回答

caozhy
caozhy   Ds   Rxr 2014.11.28 23:58

p[^>]*>[^<>]*(((?'Open'

]*>)[^<>]*)+((?'-Open'

)[^<>]*)+)*(?(Open)(?!))
caozhy
caozhy   Ds   Rxr 2014.11.28 23:59

csdn有bug,贴出来的文字被搞乱了,参考:http://blog.csdn.net/wrq147/article/details/6142285 文章中最后提到匹配 div,你修改为 p 即可。

caozhy
caozhy   Ds   Rxr 2014.11.29 00:00

csdn有bug,贴出来的文字被搞乱了,参考:http://blog.csdn.net/wrq147/article/details/6142285 文章中最后提到匹配 div,你修改为 p 即可。

q107770540
q107770540   Ds   Rxr 2014.11.30 19:45

用贪婪匹配即可:

.*”
q107770540
q107770540 我其实想写的是: <p.*?>.*</p>
3 年多之前 回复
q107770540
q107770540 CSDN问答频道是刚毕业的毕业生做的吧!!!
3 年多之前 回复
july_apple
july_apple   2016.01.19 17:04

$("p").not($("p").last());

weixin_37943891
weixin_37943891   2018.02.05 14:22

p[^>]*>[^<>]*(((?'Open'

]*>)[^<>]*)+((?'-Open'

)[^<>]*)+)*(?(Open)(?!))

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!