【发布时间】:2020-08-19 13:09:49
【问题描述】:
我有一个 70 个单词的列表。此列表用于检查用户输入。用户输入是文本,平均有 30-100 个单词。如果我列表中的单词之一在文本中,则删除用户文本,否则允许。在大多数情况下它是被允许的,所以它会遍历所有的单词。
检查单词是否在我使用的用户文本中:
$susWords = SuspiciousWord::where('checked', true)->get();
$foundSusWord = false;
foreach ($susWords as $word) {
if (preg_match_all("/" . $word->word . "/i", $user->flirttext)) {
$foundSusWord = true;
break;
}
}
在正则表达式和性能方面,我不是专家。性能可能是这里的问题吗?
【问题讨论】:
-
为什么是正则表达式而不是
stripos() !== false?
标签: php regex performance