re 效率

 

1)方法1:

re.search(r'xx', str)

2)方法2:

pattern = re.compile(r'xxx')

pattern.search(str)

 

两种方法效率图表如下:

re 效率

 

 

分析可知,随着查询次数的增加,编译后查询的方式明显快于不编译直接查询

原因:分析正则查询源码,发现查询方法底层实际都有两步调用,以 search 为例 

  方法1中re.search() 的调用流程实质为: search --------> re._compile(pattern, flags).search(string)

  方法2中的调用流程为: pattern.search(string)

两相比较,多次调用的情况下,方法1重复执行了 re._compile(pattern, flags), 而方法2仅执行一次。

 

上一篇:Java自主学习(4):正则表达式应用类


下一篇:SpringIOC容器初始化源码解析(3)—— 事件监听器模式