匹配语料库中的多个字符串

时间:2011-11-25 16:23:57

标签: c++ pattern-matching

我需要匹配语料库中的大量字符串。但是,“字符串”不是字符列表,而是具有自定义重载==运算符的类的对象的向量。

我决定使用Aho-Corasick string matching algorithm来完成这项工作。不幸的是,我还没有找到它的任何开源实现,它可以使用任意对象的序列容器(特别是向量)。幸运的是,我在这里找到了非常整洁的piece of code,它适用于普通字符串。通过一些工作,我可以将其重写为可以解决我的问题的模板。

但在此之前或从头开始编写算法之前,我想问你知道任何已解决我问题的库吗?

提前致谢,

蒂莫

2 个答案:

答案 0 :(得分:2)

您可以使用basic_string<T>它具有字符串的所有方法,但不限于字符。

答案 1 :(得分:1)

您链接的代码中的CSuffixTrie类包含两个typedef:

typedef std::wstring SearchString;
typedef wchar_t SearchChar;

如果你用你自己的类型替换那些typedef,你应该已经在那里了一半。您需要在向量上实现等效的substr以及其他一些字符串函数,但这不应该太多。