Tempered Greedy Token - 在負前瞻之前放置點有什么不同<table((?!</table>).)*</table>但是,匹配我的所有表格標簽<table(.(?!</table>))*</table>才不是。第二個似乎是有意義的,如果我試圖用文字寫出表達,但我無法理解第一個。有人可以向我解釋一下這個區別嗎?作為參考,我從這里得到了“Tempered Greedy Token”這個術語:http://www.rexegg.com/regex-quantifiers.html#tempered_greed
3 回答

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
一個脾氣暴躁的貪婪令牌真正意味著:
“匹配,但只有一點”
你是怎么做到的:
你把你不想匹配的令牌作為一個
(?!notAllowedToMatch)
點前面的負向前瞻.
(匹配任何一件事),然后用一個星重復整個事情*
:
((?!notAllowedToMatch).)*
這個怎么運作:
“看,并吃一個”一遍又一遍,通過輸入字符串從左到右移動一個字符,直到看到不允許的序列(或字符串的結尾),此時匹配停止。
Wiktor更詳細的答案很好,我只是覺得一個更簡單的解釋是有序的。
- 3 回答
- 0 關注
- 816 瀏覽
添加回答
舉報
0/150
提交
取消