0

我需要匹配任何字符串列表,我想知道我是否可以只使用类似的正则表达式,"item1|item2|item3|..."而不是只strstr()为每个字符串单独做一个。但该列表可能相当大 -多达 10000 个项目。正则表达式能很好地解决这个问题吗?它会比单独搜索每个字符串更快吗?

4

1 回答 1

1

正则表达式将起作用,并且肯定会比搜索每个字符串更快。虽然我不确定考虑到 10000 个输入模式,初始设置需要多少内存占用或时间。

但是,这是一个众所周知的问题,并且有很多特定的算法,例如:

和其他几个。他们都有不同的权衡,所以选择你的毒药。

在我们的项目中,我们需要多重替换解决方案,因此我们选择了 Aho-Corasick 算法并在其上构建了替换功能。

于 2013-03-19T15:31:09.290 回答