一直看不懂什麼叫貪婪模式@@
後來看到這篇
http://stackoverflow.com/questions/3075130/what-is-the-difference-between-and-regular-expressions
恍然大悟!
regex 的默認都是greedy,意思就是說它會一直往後找,找到最後沒有了再往前回傳最後一次找到的結果。
舉例來說:
像是 '3.*?2' 對上 '3.*2'
input : abc3jikkdf2jasdfj2asdf
'3.*?2' 的結果會是 3jikkdf2,因為它是non greedy,所以一找到就會停下來
'3.*2' 的結果會是 3jikkdf2jasdfj2 ,它會一直找找找找到最後再backtrack回去,所以最後的到比較長的結果
沒有留言:
張貼留言