匹配一个<table>并过滤中间table

作者:enenba | 发表于:2012-04-02 01:25 | 分类:正则表达式

问题:

     <(?<char>table)(\s?([^>].)*)>(((?!<table).)+)</(\k<char>)>,求高手逐字讲解一下这一段这则匹配的意思。。。
这是我在网上找的代码,不是很懂,用之解析网页的table,两个格式一样的网址,解析出来来结果不一样。。
 
解答: 
     其实就是匹配一个<table>到</table>中的数据,这个数据中不能包含<table>,也就是不能嵌套另一个table在其中,

 

(?<char>table) 是把table这几个字符放在为char这个捕获组中,

 

后面的(\k<char>)中,\K引用char这个不获取 也就是table这几个字符,</(\k<char>)>其实就等同于</table>

 

上一篇: 一个URL格式正则的解释   |   下一篇:PHP求大于1且小于100的整数正则表达式» 标签: 正则 正则匹配 正则表达式

评论: