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

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

概述我有超过1500个正则表达式模式,需要在相同的100 – 200 kb文本文件上运行并返回成功模式列表.文件来自外部,所以我不能对该文件做任何假设. 问题是,我能以某种方式使处理速度比将所有这些正则表达式运行到同一文本更快吗? 逻辑上输入文件是相同的,后来的正则表达式可以使用已经处理过的一些信息.如果我们认为每个正则表达式都是有限自动化的,那么运行1500个有限自动机到相同的文本,肯定比运行一个加 我有超过1500个正则表达式模式,需要在相同的100 – 200 kb文本文件上运行并返回成功模式列表.文件来自外部,所以我不能对该文件做任何假设.

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

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

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

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

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

总结

以上是内存溢出为你收集整理的c# – 在同一个字符串上检查超过1500个正则表达式模式匹配的最快方法全部内容,希望文章能够帮你解决c# – 在同一个字符串上检查超过1500个正则表达式模式匹配的最快方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1218624.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存