python - 你能在 Python 中预编译正则表达式,将它们保存到文件中,然后从文件中重新加载它们吗?
问题描述
我有一个应用程序,它从 Excel 文件加载一个大的正则表达式表,编译它们,然后使用它们来执行它的功能。Python 编译正则表达式大约需要 2 分钟,随着我在 Excel 文件中添加更多表达式,这个时间会增加。Excel 文件不经常更改,所以我想避免 Excel 文件没有更改时的两分钟以上的启动时间。
有没有办法将编译的正则表达式缓存到一个文件中,当 Excel 文件没有更改时我可以加载该文件?
解决方案
您可以将编译的正则表达式存储在 pickle 文件中:
import re
import pickle
r1 = re.compile('\d\d\d')
with open('tmp', 'wb') as fh:
pickle.dump(r1, fh)
with open('tmp', 'rb') as fh:
r2 = pickle.load(fh)
print(r2.match('673'))
<re.Match 对象;跨度=(0, 3),匹配='673'>
推荐阅读
- node.js - 这个快速应用程序中的回调来自哪里?
- google-bigquery - 根据先前的查询从表中选择列
- wordpress - 重置帐户后,woocommerce 在同一页面中重定向
- c - 从输入文件中读取并将单词存储到数组中
- java - 如何解决在 Android Studio 2.2 上使用记录为 @since 1.8+ 错误的 API 的问题?
- kotlin - org.gradle.api.GradleException:编译错误
- node.js - Express JS - 正则表达式 - 除了
- r - 在R中从向量移动到矩阵
- php - Nginx:使用来自 x_custom_header 的值修改 http_host 标头
- xml - 如何在 SSIS 中使用 C# 或 VB.Net 脚本任务从 URL 下载 XML 文件