PHP 板


LINE

看板 PHP  RSS
※ 引述《padding (100px;)》之铭言: : ※ 引述《DongFeng (Little Five)》之铭言: : : 作者: DongFeng (Little Five) 看板: RegExp : : 标题: [问题] 一段表达式, 希望版友能帮忙解析... : : 时间: Fri Nov 1 00:00:18 2013 : <table█class="table"><tr><td>col1</td></tr></table> : 表达式:/<table[^>]*+>([^<]*+(?:(?!<\/?+table)<[^<]*+)*+)<\/table>/i : 中间那串我也不懂为什麽要这样写 只能帮到这了 : : 这段表达式在实际使用上是抓出来源字串内的所有<table>...</table> : : 我知道[^>]表达的是 不包含> 的所有字串, 但一直弄不清楚的是在[^>]後面的*+的作用 : : 第一个问题:*是匹配<table[^>]还是匹配[^>], 如果是匹配[^>]是不是表示允许拥有零个 : : 或多个 不包含> 的字串, 因为我一直在想既然是要抓出tabel, 匹配<table[^>]表示允许 : : 零个又很怪 中间那串可以一层层来解析: (?!<\/?+table) 这里表示要匹配到非<table或</table的内文,用?+而不使用?的目的主要是要避开 backtracking,就跟推文所说的一样,是效能上的考量。 (?:(?!<\/?+table)<[^<]*+) 避开了<table和</table後,匹配到以<开头并以非<结尾的内文,可以抓出tag和text content(像是<tr>还有<td>col1),用?:也是效能上的考量。 ([^<]*+(?:(?!<\/?+table)<[^<]*+)*+) [^<]*+能匹配到text content或空集合,常理上<table>和<tr>之间不会放text content ,不过这边加上这个pattern的用意大概是因为这是copy来的pattern吧。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.26.115.250
1F:→ danny8376:?:不只效率问题... 打从一开始那边就不列入结果啊... 11/02 11:23
2F:→ danny8376:最後一点... 常理来说不会有文字没错 11/02 11:25
3F:→ danny8376:不过据说 space tab 对电脑来说好像也是个文字 11/02 11:26
4F:→ danny8376:再说如果没那段会导致多了文字就整个拒绝匹配 11/02 11:27
5F:→ s540421:的确,没考虑到tab和换行之类的空白文字,那加这也合理 11/02 11:35
补充一个没提到的部分: (?:(?!<\/?+table)<[^<]*+) 里面的?:会向前查看(look-ahead),所以这里的解释应是[^<]*+和<[^<]*+之後不允许 <table或</table,像下列的字串: <table class="table"><tr><td>col1<table</td></tr></table> 其匹配到的内文是<table</td></tr></table>,表格之间的内文是</tr> ※ 编辑: s540421 来自: 114.26.115.250 (11/02 11:45) ※ 编辑: s540421 来自: 114.26.115.250 (11/02 11:45) ※ 编辑: s540421 来自: 114.26.115.250 (11/02 11:47)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP