今天因為需要,在找有沒有 regexp 可以從後面開始找第一個 match,換句話說,就是找到最後一個match。於是我 google 到了這篇 Reversing Regular Expressions 剛進去就發現好像是我以前瞄過的文章,今天好好的看一次,發現是很有趣的思維。
所謂的 Reverse Regexp 就是:
1. reverse string inputreverse 的代價遠比把整個字串都比對完小多了,如此一來對於"找到最後一個xxx" 的問題就有了快速又方便的解法。唯一的缺點就是你要把 regexp 倒過來寫,不過這通常不是什麼難事,或者說.. 對於喜歡寫 perl 的人來說件很有趣的事情。
2. reverse regexp
3. reverse match
---------------
下面又提到 variable length 的 zero-width look ahead assertion 實作方法,也是很好玩。
還是要說一句 I love PERL !!
延伸閱讀:
http://japhy.perlmonk.org/sexeger/sexeger.html