ITPub博客

首页 > IT职业 > IT生活 > 正则表达式学习笔记(3)- 编译过程

正则表达式学习笔记(3)- 编译过程

IT生活 作者:rikinglj 时间:2021-09-09 09:01:21 0 删除 编辑

3. 正则表达式的编译

正则表达式的两个重要阶段是编译和执行。编译发生在正则表达式第一次被创建的时候,而执行则是发生在我们使用编译过的正则表达式进行字符串匹配的时候。

因此,为了性能发面的提升,建议对需要用到的正则表达式采用预定义(预编译)的方式。

// 使用预定义方式
var str = 'rynxiao.com',
    reg = /http://(?:.?w+)+/,
    start_time = new Date().getTime(),
    i = 0,
    end_time,
    duration;

for (; i rynxiao.com',
    start_time = new Date().getTime(),
    i = 0,
    end_time,
    duration;

for (; i 

测试数据(可能不准,但大致上能说明一些问题)

执行次数 预编译(ms) 直接使用(ms)
100000 18 22
1000000 110 151
10000000 1355 1517
100000000 11395 12358

另外:用构造器(new RegExp(...))创建正则表达式的使用。这种技术允许我们,在运行时通过动态创建字符串构建和编译一个正则表达式。对于构建大量重复的复杂表达式来说,这是非常有用的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1870/viewspace-2798676/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    104
  • 访问量
    998