Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要匹配任何字符串列表,我想知道我是否可以只使用类似的正则表达式,"item1|item2|item3|..."而不是只strstr()为每个字符串单独做一个。但该列表可能相当大 -多达 10000 个项目。正则表达式能很好地解决这个问题吗?它会比单独搜索每个字符串更快吗?
"item1|item2|item3|..."
strstr()
正则表达式将起作用,并且肯定会比搜索每个字符串更快。虽然我不确定考虑到 10000 个输入模式,初始设置需要多少内存占用或时间。
但是,这是一个众所周知的问题,并且有很多特定的算法,例如:
和其他几个。他们都有不同的权衡,所以选择你的毒药。
在我们的项目中,我们需要多重替换解决方案,因此我们选择了 Aho-Corasick 算法并在其上构建了替换功能。