我有一个关键词列表,需要检查其中是否有任何一个出现在字符串中。例如:
/* Keywords */
Rock
Paper
Scissors
/* Strings */
"This town rocks!" /* Match */
"Paper is patient" /* Match */
"Hello, world!" /* No match */
我可以将关键字放入数组中,循环遍历并在每次迭代中使用preg_match()或substr()函数,但这似乎有点消耗CPU。我已经尝试过正则表达式,但没有太大的成功。
在编写代码时,最高效的方法(就代码量和CPU负载而言)是什么?
请注意,比较必须不区分大小写。
(?i)(?:rock|paper|scissors)
。第一层字典树是[psr]
。如果你有大量的关键词(比如几千个),可以使用工具将它们转换成多级字典树。http://www.regexformat.com - user557597