首页 > 解决方案 > 正则表达式 - 用相同数量的“#”替换模式变得非常慢

问题描述

对于某些电子邮件签名,我有以下正则表达式(需要替换为相同数量的字符):

re.sub('(Regards|Thanks|Thank you|Best|Sincerely|Cheers),?[\n\s]([A-Za-z]+[\s\S]*)',repl, body),

repl在哪里

def repl(m):
    return '#' * len(m.group())

这最终会花费很多时间。我有一堆其他类似的正则表达式要快得多。是因为所有的条件吗?例如,如果我只是这样做re.sub('(Regards),?[\n\s]([A-Za-z]+[\s\S]*)',repl, body)会快得多,但仍然不是很好。我也尝试过编译它,因为我在许多电子邮件中都使用它,但这根本没有帮助。有没有办法加快这个速度?

标签: pythonregex

解决方案


推荐阅读