Python:为什么正则表达式比 replace() 方法慢?

标签 python regex

我有接下来的两段代码:

def replace_re(text):
    start = time.time()
    new_text = re.compile(r'(\n|\s{4})').sub('', text)
    finish = time.time()
    return finish - start

def replace_builtin(text):
    start = time.time()
    new_text = text.replace('\n', '').replace('    ', '')
    finish = time.time()
    return finish - start

然后我用文本参数调用这两个函数(一个网页的源代码约 500kb)。 我以为 replace_re() 会快得多,但结果是下一个:

  1. replace_builtin() ~ 0.008 秒
  2. replace_re() ~ 0.035 秒(慢将近 4.5 倍!!!)

这是为什么呢?

最佳答案

因为正则表达式比固定字符串替换复杂 4.5 倍以上。

关于Python:为什么正则表达式比 replace() 方法慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258511/

相关文章:

python - sklearn 成对距离结果意外地不对称

python - Matplotlib - 3D 条形图上的法线错误

python - 在不改变图片的情况下更改 JPEG 上的 EXIF 数据

javascript - 英国日期和时间的数据表顺序列

javascript:编译器解释//作为正则表达式中的注释的一些问题

mysql - 如何在 MySQL 中实现负向先行正则表达式匹配

python - 以科学计数法将带有科学计数法的文本文件读取到 Pandas 数据框

javascript - Bokeh 无法从 CDN 加载 Bokeh

javascript - 为 JavaScript 编写此 RegEx 表达式的最佳方法是什么

regex - 正则表达式在R中查找具有特定模式的字符串