用Jakarta-ORO重寫了Regexp

這個javaeye上的blog本來是利用rss導入做的在國內的鏡像,因爲xruby.blogspot.com經常被封鎖掉.現在feedburner也被禁掉之後,同步也沒法用了.我覺得與其荒廢這個blog,還不如多寫些東西,記錄一下自己做的東西.

上週在xruby上做的主要的東西就是用Jakarta-ORO重寫了Regexp的實現.原來Regexp的實現都是用的java標準庫的java.util.regex. 儘管java.util.regex說是用的' a syntax similiar to that used by Perl.',但是實際上有很多不兼容的的地方.最近在試圖運行一些rails相關的東西時發現了不少一些需要的正規表達式在java.util.regex中無法通過.

c ruby的正規表達式庫是從一個老版本的perl中來的,java也有幾個庫可以比java.util.regex更好的支持perl regexp. Jakarta-ORO是一個, JRegex也是.目前選了Jakarta-ORO主要是我們已經把這個庫包含進來了(爲了利用其glob的實現),而且現在還沒看出兩者有什麼顯著區別.

一般來說這種時候最好寫個自己的wrapper來統一一下java.util.regex和Jakarta-ORO的接口,這樣可以帶來些好處比較可以方便的替換Regexp的實現(比如選擇用java.util.regex或Jakarta-ORO).但是對這次的情況我覺得實在沒理由回到java.util.regex了,也就沒必要爲此增加複雜度了.所以就直接用了Jakarta-ORO,而不是先封裝出自己的API.

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章