c# – 在同一个字符串上检查超过1500个正则表达式模式匹配的最快方法

我有超过1500个正则表达式模式,需要在相同的100 – 200 kb文本文件上运行并返回成功模式列表.文件来自外部,所以我不能对该文件做任何假设.

问题是,我能以某种方式使处理速度比将所有这些正则表达式运行到同一文本更快吗?

逻辑上输入文件是相同的,后来的正则表达式可以使用已经处理过的一些信息.如果我们认为每个正则表达式都是有限自动化的,那么运行1500个有限自动机到相同的文本,肯定比运行一个加入自动化的速度慢.所以问题是,我可以以某种方式创建加入的正则表达式吗?

解决方法

我认为这在理论上是可能的,但似乎是一项非常重要的任务.可能的方法可能是:

>将所有正则表达式转换为有限状态机.
>将这些组合成一个单独的fsm.
>优化生成的状态.

优化将是一个关键步骤,因为输入很长(100-200kb).内存可能是一个问题,而性能可能会变得更糟.我不知道是否存在用于此目的的库,但这里是theoretical answer.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...