使用tr1 :: regex_search匹配大的字符串列表

时间:2013-03-19 15:16:18

标签: c++ regex tr1

我需要匹配任何字符串列表,我想知道我是否可以使用类似"item1|item2|item3|..."的正则表达式,而不是仅为每个字符串单独执行strstr() 。但列表可能相当大 - 最多10000件。正则表达式是否可以正常运行?它会比单独搜索每个字符串更快吗?

1 个答案:

答案 0 :(得分:1)

正则表达式将起作用,肯定比搜索每个字符串更快。虽然我不确定在给定10000输入模式的情况下初始设置需要多少内存占用或时间。

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

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

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