gpt4 book ai didi

regex - 捕获组 VS 非捕获组

转载 作者:行者123 更新时间:2023-12-04 22:58:43 28 4
gpt4 key购买 nike

我试图测试正则表达式的捕获组和非捕获组的性能。
顺便说一下,捕获组和非捕获组之间有非常细微的不同。
这个结果正常吗?

[root@Sensor ~]# ll -h sample.log
-rw-r--r-- 1 root root 21M Oct 20 23:01 sample.log

[root@Sensor ~]# time grep -ciP '(get|post).*' sample.log
20000

real 0m0.083s
user 0m0.070s
sys 0m0.010s

[root@Sensor ~]# time grep -ciP '(?:get|post).*' sample.log
20000

real 0m0.083s
user 0m0.077s
sys 0m0.004s

最佳答案

通常,非捕获组比捕获组性能更好,因为它们需要较少的内存分配,并且不制作组匹配的副本。但是,有三个重要的警告:

  • 对于具有短匹配的简单短表达式,差异通常非常小。
  • 启动程序的行为,如 grep本身需要大量的时间和内存,并且可能会压倒通过使用非捕获组获得的任何小的改进。
  • 一些语言以相同的方式实现捕获组和非捕获组,导致后者没有性能提升。
  • 关于regex - 捕获组 VS 非捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33243292/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com