用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.

 

 

 

你可能感兴趣的:(java,Blog,perl,Ruby,Rails)