delphi没有内置正则模块所以我们在delphi中使用正则只能借助三方组件了
因为一个产品中需要频繁使用正则替换所以写了一个测试程序,用来比较到底哪种正组件效率最高
相信很多人都知道TPerlRegEx吧?他是免费开源的
这个组件使用的人比较多,然而这个组件却是速度最慢,效率最差的一个
可能是在d2009中的性能比较差吧,别的版本没有试过
TPerlRegEx的一些用法可以看看这里http://www.cnblogs.com/del/archive/2007/12/21/1009482.html
另外一个组件是TRegExpr这个组件总体来说速度还算可以,功能还算比较全,推荐使用,也是免费开源的
而也有一些人使用的是Ms 的RegExp组件,但这个组件需要在delphi注册控件,而且在程序里一直会使用别人的dll感觉很别扭,不过总体来说ms的正则组件性能是相对高的了,但他功能也不是很全,比如他不支持根据匹配结果的条件替换,如果你对软件的性能要求高又不想花钱,那么建议你使用他
另外一个就是商业软件了,他的性能与功能都是没得说的,从各方面测试他都是最高效的
我写的测试程序中因为使用了回调机制的Replace所以看上去他没有ms的regexp速度快,但如果也使用Replace全部的话那速度会比ms的regexp快那么一点
另外因为篇幅有限就直接给大家下载源码了
TPerlRegEx:
http://www.regular-expressions.info/download/TPerlRegEx.zip
TRegExpr:
http://regexpstudio.com/TRegExpr/TRegExpr.html
DIRegEx:
http://www.yunqa.de/delphi/doku.php/products/regex/index?DokuWiki=564g8fvcqg5lkso0fbcncv86c1
测试源码:
http://www.17benteng.com/soft/delphi_RegEx_Test.rar
注意:些测试中的TRegExpr是我修改过的,不过不影响正常使用