D 如何最好地进行多字符串查找?

D 如何最好地进行多字符串查找?,d,D,我在快速查找多字符串时遇到一些问题 此脚本在编译期间无限暂停,直到ram爆炸 它在find()调用时冻结 而这个脚本工作正常,可以编译并运行 以前,我只是用一个正则表达式列表进行matchAll,但对于大型列表来说,这将是极其缓慢的。我也试过一个ctRegex!(“关键字1 |关键字2 |……”)与matchAll一起使用,但速度非常慢 使用multiple canFind()似乎最快,但每次调用都会多次扫描字符串。为什么要像使用字符串数组一样使用AliasSeq呢?如果您希望它非常快,请查

我在快速查找多字符串时遇到一些问题

此脚本在编译期间无限暂停,直到ram爆炸

它在find()调用时冻结

而这个脚本工作正常,可以编译并运行

以前,我只是用一个正则表达式列表进行matchAll,但对于大型列表来说,这将是极其缓慢的。我也试过一个ctRegex!(“关键字1 |关键字2 |……”)与matchAll一起使用,但速度非常慢


使用multiple canFind()似乎最快,但每次调用都会多次扫描字符串。

为什么要像使用字符串数组一样使用
AliasSeq
呢?如果您希望它非常快,请查看。但是,这超出了包括D在内的标准编程语言库的范围,因此您可能必须自己实现它。对于单字符串搜索,boyerMooreFinder中有一个,它可能需要次线性时间来计算文本大小。@John Smith Find返回匹配参数的偏移量。如果您有一长串参数,那么在检查响应时必须对每个偏移量进行硬编码。更容易将偏移量引用到阵列。