优化正则表达式的重要几点

这几个月在做一些关于大量数据使用正则匹配的事,程序语言是Delphi,但是正则表达式模块是perl的,所以基本上所有语言的正则都可以按照一下几点优化。

 

首先,你的正则表达式尽量少开匹配模式,delphi中有roIgnoreCase, roSingleLine等等,这些在一定程度上会加重CPU负担,大小写在不必要的情况下,还是关了忽略大小写比较好。

 

再者就是尽量避免使用含有.点之类的重复匹配,而采用更精确的比如\d \w等,举个例子  aabbcc123aass

cc(.+?)aa 和cc(\d{3})aa,后者会比前者更有优势,为什么呢?因为越是提前否定某个字符串是否匹配,效率越高。也就是更早的发现不匹配的,然后跳过。

 

最后就是尽可能规避冗长的正则表达式,而采用分段,或者精简的做法,这种有点类似第二点,尽早发现不匹配的就忽略。

 

以上经验可能在其他地方不适用,仅供参考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值