python - 高效匹配 Python 中的许多正则表达式?
问题描述
在我的一个程序中,我必须检查一行是否匹配一些 20000 个正则表达式之一。
我尝试将正则表达式放入一个长链中"something1|something2|...something20000"
,或者制作一个20000
正则表达式列表并在其上运行一个 for 循环。我一直在使用标准的 re 库。在大多数情况下,我必须等待约 20 秒才能完成比赛。我想知道是否有更快的方法,前提是不能轻松简化或组合正则表达式。
解决方案
这只是一个想法。分组正则表达式。例如,假设 regex_groupn 匹配regexn1, regexn2, ... regexnm
第 n 个组的常用表达式。然后就可以匹配了regex_group1|regex_group2|...|regex_groupn
。如果第 k 个组匹配,则查找 的匹配项regexk1|regexk2|...|regexkm
。
推荐阅读
- redirect - 如何将托管在 Heroku 上的 nextjs 应用程序从 http 重定向到 https?
- python - 从 django 以 html 格式显示数据
- r - 错误:y 中的观察数不等于 x 的行数
- android - 如何在android中旋转按钮的文本?
- sql-server - T-SQL:这个 SQL 查询检查日期条件应该如何概括(而不是硬编码)?
- angular - 在 Angular 中使用 ngIf 进行条件渲染
- java - JSoup 选择器包含两个元素
- r - 闪亮的应用程序:如何根据 checkboxGroupInput 输出修改 selectInput 选项
- api - 如何在 Retrofit2 中使用协程?
- algorithm - 估计在没有体积干涉的情况下用一些子立方体填充主立方体内表面的可行性