python - 正则表达式 - 用相同数量的“#”替换模式变得非常慢
问题描述
对于某些电子邮件签名,我有以下正则表达式(需要替换为相同数量的字符):
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)
会快得多,但仍然不是很好。我也尝试过编译它,因为我在许多电子邮件中都使用它,但这根本没有帮助。有没有办法加快这个速度?
解决方案
推荐阅读
- numpy - OpenCV:用背景颜色替换蒙版
- css - 两个相同的重叠圆圈,底部的一个从边缘显示
- javascript - 来自数组的 JSON 未正确解析
- python - Python反转元组的某些部分
- java - 如何通过 Selenium 将 Xcode 模拟器设置为以编程方式旋转到 iPhone/iPad 的横向
- jquery - 使用动态 ID 重置表单
- javascript - 为什么 checkValidty() 返回 false?
- sql-server - 如何在将值转换为 int 之前使用 sequelize 解析 NUMERIC(20)
- php - TCPDF/TCPDI 变量未在合并文档中打印
- sql - 获取最新值 - sql 执行时间太长