加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:58:18 所属栏目:百科 来源:网络整理
导读:我有超过1500个正则表达式模式,需要在相同的100 – 200 kb文本文件上运行并返回成功模式列表.文件来自外部,所以我不能对该文件做任何假设. 问题是,我能以某种方式使处理速度比将所有这些正则表达式运行到同一文本更快吗? 逻辑上输入文件是相同的,后来的正则
我有超过1500个正则表达式模式,需要在相同的100 – 200 kb文本文件上运行并返回成功模式列表.文件来自外部,所以我不能对该文件做任何假设.

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

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

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读