首页 > 解决方案 > 高效匹配 Python 中的许多正则表达式?

问题描述

在我的一个程序中,我必须检查一行是否匹配一些 20000 个正则表达式之一。

我尝试将正则表达式放入一个长链中"something1|something2|...something20000",或者制作一个20000正则表达式列表并在其上运行一个 for 循环。我一直在使用标准的 re 库。在大多数情况下,我必须等待约 20 秒才能完成比赛。我想知道是否有更快的方法,前提是不能轻松简化或组合正则表达式。

标签: pythonregex

解决方案


这只是一个想法。分组正则表达式。例如,假设 regex_groupn 匹配regexn1, regexn2, ... regexnm第 n 个组的常用表达式。然后就可以匹配了regex_group1|regex_group2|...|regex_groupn。如果第 k 个组匹配,则查找 的匹配项regexk1|regexk2|...|regexkm


推荐阅读