嗯,这很奇怪。到目前为止,我的知识(在其他来源中,from this question)表明了我最初的答案:

第一个答案

Python缓存您使用的最后100个regex,因此即使您不显式地编译它们,也不必每次使用时都重新编译它们。在

但是,有两个缺点:当达到100个regex的限制时,整个缓存都是nuked,因此如果您在一行中使用101个不同的regex,则每次都会重新编译每个regex。嗯,那不太可能,但还是。在

其次,为了找出是否已经编译了正则表达式,解释器每次都需要在缓存中查找正则表达式,这确实需要一点额外的时间(但由于字典查找非常快,所以不需要太多时间)。在

因此,如果显式编译正则表达式,就可以避免这个额外的查找步骤。在

更新

我刚做了一些测试(Python3.3):>>> import timeit

>>> timeit.timeit(setup="import re", stmt='''r=re.compile(r"\w+")\nfor i in range(10):\n r.search(" jkdhf ")''')

18.547793477671938

>>> timeit.timeit(setup="import re", stmt='''for i in range(10):\n re.search(r"\w+"," jkdhf ")''')

106.47892003890324

因此,似乎没有进行缓存。也许这是timeit.timeit()运行的特殊条件的一个怪癖?在

另一方面,在Python2.7中,这种区别并没有那么明显:

^{pr2}$

python正则表达式编译_用Python编译正则表达式相关推荐

  1. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  2. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  3. python语言的解释性特点指的是编写的程序不需要编译_解释性与编译型 Python2和python3的区别...

    一 基础: 1.解释型语言与编译型语言的区别 首先,我们编程都是用的高级语言(写汇编和机器语言的大牛除外),计算机不能直接理解高级语言,只能理解和运行机器语言,所以必须要把高级语言翻译成机器语言,计算 ...

  4. python加密反编译_对Python源码进行加密及反编译前后对比

    关于python的加密 目前软件开发商对 Python 加密时可能会有两种形式,一种是对python转成的exe进行 保护,另一种是直接对.py或者.pyc文件进行保护,下面将列举两种形式的保护流程. ...

  5. python派森编程_派森(Python)官方下载_派森(Python)最新版_派森(Python)v2.7.14官方正式版-华军软件园...

    Python是一种面向对象.直译式计算机程序设计语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法非 ...

  6. python 免费空间_用python做大数据

    不学Python迟早会被淘汰?Python真有这么好的前景? 最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Pytho ...

  7. python画龙猫_龙猫Python简单学

    机关算计基础知识 cpu 相当有大脑负责运算和处理问题 最快 内存 临时充储数据 快 硬盘 云久充储数据 慢 操作系统 为电脑上个个独立的基础设备提供桥梁让他们可以相互建立起链接 python的应用和 ...

  8. python 创意项目_针对python开发人员的10个很棒的python项目创意

    python 创意项目 The joy of coding Python should be in seeing short, concise, readable classes that expre ...

  9. python queue 调试_学Python不是盲目的,是有做过功课认真去了解的

    有多少伙伴是因为一句'人生苦短,我用Python'萌生想法学Python的!我跟大家更新过很多Python学习教程普及过多次的Python相关知识,不过大家还是还得计划一下Python学习路线!Pyt ...

  10. python整数池_【Python】Python中神奇的小整数对象池和大整数对象池

    小整数对象池 整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间. Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立 ...

最新文章

  1. ActiveMQ实现负载均衡+高可用部署方案
  2. 题库练习5(句子逆序、字符串排序、int型二进制表示中1的个数、购物单)
  3. canal mysql重置_canal: 首先装完阿里的canal,然后数据库同步,仅供学习参考
  4. redis实践及思考
  5. 硬编码与非硬编码(软编码)区别
  6. 20岁黑客发现苹果核心 web 应用中的严重漏洞,获奖$3.6万
  7. 基础课教材推荐-数字设计、体系结构
  8. Caffe学习:pycaffe利用caffemodel进行分类(2)
  9. 工厂模式+抽象工厂模式
  10. Java—图书管理系统
  11. creator小功能----浅谈cc.Director与 资源加载策略
  12. 3par linux多路径软件,Redhat6.X 配置HP3PAR7200存储多路径过程
  13. MLI_09 HMM(隐马尔可夫模型)
  14. CANdelaStudio编辑CDD——学习碎笔
  15. python调用sendcloud模板发送带附件的邮件
  16. 单元测试的必要性?一文聊聊单元测试
  17. 外盘国际期货招商:股票短线操作心态
  18. 机器人辅助符文天赋符文天赋_2020机器人符文出装 s10机器人辅助出装天赋推荐...
  19. 自学计算机一年找到工作-学习路线
  20. 综合能源系统电压稳定研究(Matlab代码实现)

热门文章

  1. 【2011.10.29模拟】24点游戏题解
  2. 牛顿法和牛顿下山法求极值的理解
  3. 解决Illegal unquoted character ((CTRL-CHAR, code 13)): has to be escaped using backslash to be include
  4. matlab nntool 使用步骤: (以p4.3 为例),Matlab_nntool_应用实例
  5. 一款在线免费的甘特图,让你轻松管理项目进度
  6. Linux基本文件操作练习(附答案分析)
  7. AppStore上线审核“App预览和截屏”chrome上的截屏参数
  8. 手机验证码接收系统如何选择
  9. 超声检查腕骨间关节有助于最大程度地发现RA腕骨间滑膜炎
  10. 偏导数(Partial Derivative)