有效地查询一个字符串对多个正则表达式

前端之家收集整理的这篇文章主要介绍了有效地查询一个字符串对多个正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
让我说我有10,000个正则表达式和一个字符串,我想知道,如果字符串匹配任何他们,并得到所有的匹配。
执行该操作的简单方法是仅对所有正则表达式逐个查询字符串。有更快,更有效的方法吗?

编辑:
我试着用DFA的(lex)
这里的问题是,它只会给你一个单一的模式。如果我有一个字符串“hello”和模式“[H | h] ello”和“。{0,20} ello”,DFA只会匹配其中一个,但我想让他们两个。

Martin Sulzmann在这个领域做了相当多的工作。
他有 a HackageDB project解释brefully here使用 partial derivatives似乎是为此量身定制。

所使用的语言是Haskell,因此如果这是需要,将非常难以翻译成非功能语言(我认为翻译到许多其他FP语言将仍然是相当困难的)。

代码不是基于转换为一系列自动机,然后将它们组合,而是基于对正则表达式本身的符号操作。

另外,代码是非常实验性的,马丁不再是一个教授,但是在“有酬的就业”(1),所以可能不感兴趣/无法提供任何帮助或投入。

>这是一个笑话 – 我喜欢教授,更少的聪明的人努力工作更多的机会,我有付出!

猜你在找的正则表达式相关文章