我有一個關鍵字列表,並需要檢查是否有任何一個字符串出現。例如: -在PHP中,將字符串與關鍵字列表進行匹配的最有效方法是什麼?
/* 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)'這個第一級的trie是'[psr]'如果你有一堆關鍵字(就像幾千),使用一個工具來轉換它們進入一個多層次的線索。 http://www.regexformat.com – sln
你說「這似乎有點cpu昂貴」,但你有沒有嘗試過其中任何一個?如果你想知道事情需要多長時間,那麼最好的方法就是實際嘗試它們。您也可以使用像xdebug這樣的軟件包:http://xdebug.org/ –