首页 新闻 会员 周边 捐助

高级正则问题

0
悬赏园豆:20 [已关闭问题]

求助各位!  不好意思为吸引大家的眼球...才...

现在是这样了的:

Code

如果字符串是上面的testInput的话,这个匹配到还是不错的

可以得到我想要的结果 ,

<ul id='aas' class='sdfsdfsadfs'>
                              
<li>大家好!</li>
 
                              
<li>拜托大家了!</li>
            
</ul>

 

但是如果testInput如果变成如下:

 

Code

 

 我得到的结果却是

<ul id='aas' class='sdfsdfsadfs'>
                              
<li>大家好!</li>
<li><ul id='cdd'><li>高手们,我是干扰匹配的</li><li>高手们,我是干扰匹配的</li></ul>

我想要得到的结果是:

Code

含有一个ul的完整嵌套,

各位,帮忙看一下如何写这个正则式,谢谢了

 

 

ilovemeyou2000的主页 ilovemeyou2000 | 初学一级 | 园豆:187
提问于:2009-05-04 16:04
< >
分享
其他回答(3)
0

@"(<ul[^>]*>[^<]*<li>[\s\S]*</li>[^<]*</ul>)"

梦寻千里 | 园豆:250 (菜鸟二级) | 2009-05-04 16:58
0

<ul.*?>.*</ul> 最大匹配

<ul.*?>.*?</ul> 最小匹配


小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2009-05-04 18:27
0

这个问题如果用正则表达式搞的话其实比较难。

一楼的不行,因为里面除了 li 就不能嵌套其他标记了,而且只能一个 li

二楼的也有问题,最大匹配遇的到 <ul></ul><ul></ul> 不行,最小匹配的遇到 <ul><ul></ul></ul>不行。

试一下这个:

<ul.*?>(?:.(?!<ul))*.?</ul>

DiryBoy | 园豆:639 (小虾三级) | 2009-05-05 14:57
0

试试:<(?<标记>\w+).*?>(.(?<内嵌标记><(\1).*?>.*?</\1>)?)*?</\1>

测试结果比较接近楼主意图:

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-05-05 16:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册