PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
RegExp
[问题] 一段表达式, 希望版友能帮忙解析...
楼主:
DongFeng
2013-11-01 00:00:18
表达式:/<table[^>]*+>([^<]*+(?:(?!<\/?+table)<[^<]*+)*+)<\/table>/i
这段表达式在实际使用上是抓出来源字串内的所有<table>...</table>
我知道[^>]表达的是 不包含> 的所有字串, 但一直弄不清楚的是在[^>]后面的*+的作用
第一个问题:*是匹配<table[^>]还是匹配[^>], 如果是匹配[^>]是不是表示允许拥有零个
或多个 不包含> 的字串, 因为我一直在想既然是要抓出tabel, 匹配<table[^>]表示允许
零个又很怪
第二个问题:为什么要在*号后面再加上+, *不是就允许零个或多个字串存在了吗?为什么
还要多一个允许一个或多个字串存在的+呢?
第三个问题:中间()的部分已经完全不能理解.,正常table里头会允许<thead>...</thead>
<tr>...</tr>,<td>...</td>,<tfoot>...</tfoor>等tag的存在, 但是()中开始就用[^<]
拒绝 < 的存在, 希望有版友能替我解释这一段...
抱歉, google跟在版上爬文了还是花煞煞, 不得已只好直接发文问了, 还请大家不吝啬指
教
作者:
s25g5d4
(function(){})()
2012-01-01 00:27:00
http://goo.gl/NRIfS
*+ Match 0 or more times and givenothing back
作者:
LPH66
(-6.2598534e+18f)
2012-01-01 13:14:00
意思是如果对完了但后面不合的话, 不会退一格去试平常 * 的 match 动作会试遍所有 * 的组合后才回报找不到最先试的是抓最多的组合, 但如果这不对的话会少抓一个再试再不对再少一个, 一直到没抓都不对就回报失败*+ 的意思就是抓最多的组合失败了就别试了对结果没有影响, 但对 match 的效能有很大的影响特别是这里已经指定了 [^>] 了那就没必要退了 (一定不会对)那就干脆叫它别去试不可能的组合呃说错了, 这个例子对结果没有影响
作者: up9cloud (九天)
2012-01-01 13:21:00
第一个问题:是批配[]里的东西因为<table>,<table border="1">都可能是目标
作者:
danny8376
(钓到一只猴子@_@)
2012-01-01 13:22:00
对齁 会效能有影响呢www 难怪搞得这么复杂XD用*+多了会误吃</table的大麻烦 后方才拖了一大串...
作者:
godspeedlee
(妳,我可以)
2012-01-13 10:24:00
参考看看
http://godspeedlee.byethost10.com/regex/
http://tinyurl.com/oe593xd
继续阅读
[问题] A条件下 抓取B条件
Dream74
[问题] Perl 抓中文字串
mmm321
[问题] 请问我的表示式该如何修改
jjooeeyy
[问题] 请问CASE使用的方式
perasa
[问题] 如何找非于行开头的某字?
ggirls
Re: [问题] 抓网址
Sombra
Re: [问题] 在字串里找到符合的字符
Prius
Re: [问题] 在字串里找到符合的字符
CindyLinz
[问题] 在字串里找到符合的字符
jacobcan118
[心得] 重复抓特定html标签资料
felaray
Links
booklink
Contact Us: admin [ a t ] ucptt.com