这可能更多地依赖于单个实现而不是语言。在

例如,某些模式在某些实现中是O(N2),而在其他实现中则是~O(N)。具体地说,大多数重新实现都是基于NFAs(非确定性有限状态自动机)的。长话短说,这意味着他们可以而且将在某些情况下用某些模式回溯。这就产生了大约O(N2)的复杂性。与同一模式匹配的确定性有限状态自动机(DFA)从不回溯它总是具有线性复杂度。同时,DFA的编译阶段通常比NFA复杂(而且DFA并不具备NFA的所有功能)。在

因此,对于许多不涉及回溯的简单模式,基于NFA的RE引擎可能很容易比基于DFA的引擎运行得更快。但是,当基于NFA的RE-engine试图匹配一个不涉及回溯的模式时,它可以(并且将)急剧减速。在后一种情况下,基于DFA的引擎可以轻松地快很多倍。在

大多数RE库基本上都是从以字符串表示的正则表达式开始的。当您进行基于RE的搜索/匹配时,大多数人将其编译为NFA/DFA的数据结构。这个编译步骤需要一些时间(不是很大的量,但可能会变得非常重要,特别是当您使用许多不同的REs时)。一些RE引擎(例如boostxpressive)可以静态地编译正则表达式,也就是说,RE与程序的源代码同时编译。这可以从程序的执行时间中消除编译RE的时间,因此,如果您的代码花费大量时间在编译REs上,它可能会从中获得实质性的改进(但这与静态类型无关,至少据我所知,在Java或C或example中无法获得相同的结果)。其他一些语言(例如D)提供了足够的功能,您几乎可以肯定地对它们做同样的事情,但是我不知道您现在可以计划使用它们的实际实现。在

java正则和python正则差距,在C/Java中处理正则表达式比在Python中快多少?相关推荐

  1. python中的正则表达式re模块_python中的正则表达式(re模块)

    一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎 ...

  2. python中的正则表达式re模块_Python中的re模块--正则表达式

    Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...

  3. python程序中想使用正则表达式_如何在python中使用正则表达式提取每行中需要的信息...

    展开全部 >>> s='''21899   6% S    15 173928K  38024K  fg app_108  com.tencent.qq 21899  34% S   ...

  4. 正则表达式 (re包)——python(快餐)

    开始:正则表达式 (re包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我将从正则表达式开始讲Python的标准库.正则表达 ...

  5. 站长在线零基础Python完全自学教程20:在Python中使用正则表达式完全解读

    欢迎你来到站长学堂,学习站长在线出品的在线课程<零基础 Python完全自学教程>今天给大家分享的是第20课< 在Python中使用正则表达式完全解读>.本节课是一个大课,我分 ...

  6. java string 返回匹配正则的字符串的起始位置_【Python】正则表达式

    概述 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Pyth ...

  7. python正则_Python基础12之Python正则

    上图施工计划,已完成专题: 1.数字专题 2.字符串专题 3.列表专题 4.流程控制专题 5.编程风格专题 6.函数使用专题 7.面向对象编程(上篇) 8.面向对象编程(下篇) 9.Python基础9 ...

  8. python正则查找_python正则查找

    [转摘]PYTHON 正则表达式 网上转的一篇,把正则的规则系统的分类了.. 好文,共享,备查 ~~~~~~~~~~~ http://www.cnblogs.com/huxi/archive/2010 ...

  9. python正则r的作用_Python正则表达式,这一篇就够了!

    原标题:Python正则表达式,这一篇就够了! 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中关于 正则表达 ...

最新文章

  1. Django中的Cookie--实现登录
  2. 第013课_代码重定位
  3. 算法高级(25)-分布式TopN算法玄机
  4. 刷题进阶 -- 剑指Offer、力扣算法题
  5. .net 委托 +lamda表达式
  6. 百度文库文档免费下载功能
  7. 爬取某家网二手房数据(详细教程)
  8. PDFlib-6.0.3p1-Windows] license key 算法分析
  9. c语言竖线什么意思,竖线符号意思
  10. 如何制作电话号码二维码?
  11. 树莓派开始,玩转Linux4:具备良好的编辑器
  12. 用Python写一个桌面便签(每日计划本)
  13. Java语言每日一练—第11天:最优选择2
  14. 视频转换横竖屏、去色,视频剪辑
  15. 抖音上热门?这几个一定要记住
  16. 微信二维码 活码转跳
  17. Poland seeks to calm row with Germany over WWII war repa industrielle Kommunikation rations
  18. windows安装ROS
  19. c语言错误c2142,应数计算机程序设计(C语言)实验选编.docx
  20. java版能播flac_Java中如何写FLAC文件实例

热门文章

  1. 品运维自动化之cobbler的安装序
  2. Linux 命令(60)—— strip 命令
  3. 5个让你的404页面变的更加实用的技巧
  4. BZOJ 4826: [Hnoi2017]影魔 单调栈 主席树
  5. 多核程序设计的相关基础知识----以误差扩散算法为例
  6. 检查Linux服务器性能的关键十条命令
  7. linux之ClamAV杀毒软件安装配置
  8. Linux之seq命令
  9. java服务器代码_简单java服务器
  10. Json转化的三种方式