ser*_*erg 18 regex optimization performance
在阅读了一篇关于java中正则表达式优化的相当不错的文章后,我想知道创建快速有效的正则表达式的其他好方法是什么?
Ste*_*ham 33
(?:pattern)
(capturing)
(?>pattern)
我创建了一个展示这些技术的视频.我在灾难性的回溯文章中用非常糟糕的正则表达式开始.经过一系列的优化后,我将它的速度提高了300万倍,并在每次更改后进行基准测试.该视频特定于.NET,但其中许多内容也适用于大多数其他正则表达式:(x+x+)+y
(x+x+)+y
.NET Regex课程:#5:优化
Que*_*ark 7
谨慎使用any(dot)运算符,如果你能以任何其他方式执行,那么,dot会一直咬你...
我不确定PCRE是否是NFA而且我只熟悉PCRE但是+和*默认情况下通常是贪婪的,它们会尽可能地匹配使用+?和*?尽可能地匹配,在编写正则表达式时记住这两个条款.
Jim*_*wis 6
知道什么时候不使用正则表达式——有时手工编码的解决方案更有效也更容易理解。
示例:假设您想匹配一个可被 3 整除的整数。设计一个有限状态机来实现这一点很简单,因此必须存在相应的正则表达式,但将其写出来并不是那么简单——我敢肯定讨厌必须调试它!
归档时间:
16 年,2 月 前
查看次数:
24017 次
最近记录:
12 年,3 月 前