微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

让我说我有10,000个正则表达式和一个字符串,我想知道,如果字符串匹配任何他们,并得到所有的匹配。
执行该操作的简单方法是仅对所有正则表达式逐个查询字符串。有更快,更有效的方法吗?

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

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

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

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

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

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

原文地址:https://www.jb51.cc/regex/357936.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐