我有接下来的两段代码:
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()
会快得多,但结果是下一个:
replace_builtin()
~ 0.008 秒replace_re()
~ 0.035 秒(慢将近 4.5 倍!!!)
这是为什么呢?
最佳答案
因为正则表达式比固定字符串替换复杂 4.5 倍以上。
关于Python:为什么正则表达式比 replace() 方法慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258511/