Tempered Greedy Token - 在负前瞻之前放置点有什么不同<table((?!</table>).)*</table>但是,匹配我的所有表格标签<table(.(?!</table>))*</table>才不是。第二个似乎是有意义的,如果我试图用文字写出表达,但我无法理解第一个。有人可以向我解释一下这个区别吗?作为参考,我从这里得到了“Tempered Greedy Token”这个术语:http://www.rexegg.com/regex-quantifiers.html#tempered_greed
3 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
一个脾气暴躁的贪婪令牌真正意味着:
“匹配,但只有一点”
你是怎么做到的:
你把你不想匹配的令牌作为一个
(?!notAllowedToMatch)
点前面的负向前瞻.
(匹配任何一件事),然后用一个星重复整个事情*
:
((?!notAllowedToMatch).)*
这个怎么运作:
“看,并吃一个”一遍又一遍,通过输入字符串从左到右移动一个字符,直到看到不允许的序列(或字符串的结尾),此时匹配停止。
Wiktor更详细的答案很好,我只是觉得一个更简单的解释是有序的。
- 3 回答
- 0 关注
- 757 浏览
添加回答
举报
0/150
提交
取消