让我说我有10,000个正则表达式和一个字符串,我想知道,如果字符串匹配任何他们,并得到所有的匹配。
执行该操作的简单方法是仅对所有正则表达式逐个查询字符串。有更快,更有效的方法吗?
执行该操作的简单方法是仅对所有正则表达式逐个查询字符串。有更快,更有效的方法吗?
编辑:
我试着用DFA的(lex)
这里的问题是,它只会给你一个单一的模式。如果我有一个字符串“hello”和模式“[H | h] ello”和“。{0,20} ello”,DFA只会匹配其中一个,但我想让他们两个。
Martin Sulzmann在这个领域做了相当多的工作。
他有 a HackageDB project解释brefully here使用 partial derivatives似乎是为此量身定制。
他有 a HackageDB project解释brefully here使用 partial derivatives似乎是为此量身定制。
所使用的语言是Haskell,因此如果这是需要,将非常难以翻译成非功能语言(我认为翻译到许多其他FP语言将仍然是相当困难的)。
代码不是基于转换为一系列自动机,然后将它们组合,而是基于对正则表达式本身的符号操作。
原文地址:https://www.jb51.cc/regex/357936.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。