正则表达式 html标签匹配

有这样一段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个币了。。。

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

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

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

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

用贪婪匹配即可:

.*”

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

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

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

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