多字符串模式匹配的有效方式?

时间:2018-01-04 23:37:32

标签: string pattern-matching trie

现在我们假设:

String[] = {
   "Name:John, State:MA, City:Boston, Degree:Master",
   "Name:Alex, State:CA, City:San Diego, Degree:PhD",
   "Name:Aaron, State:NY, City:NYC, Degree:Master",
   "Name:Lily, State:MA, City:Worcester, Degree:Master",
}

我如何找到包含"State:MA""Degree:Master"的所有内容;很明显,这将是第1行和第4行。

所以它看起来像SQL数据库查询,但我需要使用Java或Python实现。

此外,输入数据应该非常大,所以我实际上正在考虑更有效的方法,如Trie来存储信息。

但通常Trie应该用于前缀字符串问题;比如,给定一个字符串列表,我们想要找到包含模式he的所有字符串, 所以最终名单可能是:

he, hell, help, hello....

虽然对于我的问题,这两种模式并不是连续的;但Trie确实可以为大输入节省大量空间。

那么使用Trie解决这种多模式匹配的想法是什么? 或者我不知道的其他数据结构?

由于

1 个答案:

答案 0 :(得分:0)

为了获得灵感,您可以查看these classes。您最好先从samples开始。这种方法是trie和FSA的混合体。 您必须自己实现准备模式的逻辑。当多个模式与您的字符串匹配时,您还必须处理结果的顺序。