|
|
1
6
在这种情况下,最好使用非贪婪量词。
以这个字符串为例
非贪婪量词 \[\[.+?\]\] Atom # 1 2 3 4 5
展望未来: \[\[(?:(?!\]\]).)+\]\] Atom # 1 2 3 4 5 6 7
所以看起来非贪婪量词要做的工作更少。 免责声明:这是一个人工示例,实际性能可能会有所不同,具体取决于regex引擎的输入、实际表达式和实现。我只有98%的把握,我在这里概述的是实际发生的事情,所以我愿意改正。另外,和所有的性能技巧一样,不要把这当作表面价值,如果你想确定的话,做你自己的基准比较。 |
|
|
2
3
另一种变体:
它既不使用非贪婪量词,也不使用look aheads。它允许一个
这种模式最好与FSA编译regex引擎一起使用。在回溯引擎上,它可能会比不贪婪的变体慢。 |
|
|
3
1
你用哪种正则表达式?如果它支持所有格量词,有一个更好的选择:
Java、JGSoft、PCRE(PHP)、Oniguruma(Ruby 1.9)和perl5.12风格支持所有格量词。所有这些口味也都支持原子团,可以用来达到同样的效果:
NET风格支持原子组,但不支持所有格量词。 |
|
|
4
0
我认为最好使用非贪婪限定符。你确定你读到的那篇文章没有说“小心 “匹配吗?” |
|
Sweepy Dodo · JSON lite的格式化 9 月前 |
|
|
giantjenga · 优化整数向量到二进制向量的转换 10 月前 |
|
Zegarek · Postgresql递归查询未提供预期结果 10 月前 |
|
|
Joe · 为什么这两个查询之间的性能存在如此大的差异? 1 年前 |
|
tic-toc-choc · 在`dplyr中高效使用列表进行过滤` 1 年前 |