1
我有一個badwords列表其中有一個是「S.A.」 我的所有單詞都保存在一個數組中,我循環遍歷數組並進行替換。 S.A.這個詞取代了我不想替換的東西,我只需要它就可以替代S.A.作爲一個詞本身。 所以舉例「這個S.A.很糟糕。」應該變成「這很糟糕」。 但現在當我運行它在一個字符串(例如)SEAS中,它將取代它...不知道爲什麼...PHP:正則表達式替換奇怪的結果
ps:如果然後檢查是因爲如果字符串$ v是正是壞字,它不應該被刪除。 正則表達式中的\ b單詞指示符不應該使單詞完全匹配嗎?
ps:我只想刪除完整的單詞,而不是一個單詞的一部分。 如果我有蘋果在壞名單,但有人寫蘋果,它不應該被取代。
foreach ($this->badwordArr as $badword) {
if (strtoupper($v) == strtoupper($badword)) {
// no replace because its the only word
$data[$key] = $v;
} else {
$pattern = "/\b$badword\b/i";
$v = preg_replace($pattern, " ", $v);
}
}
我的正則表達式模式有什麼問題?!?!
我認爲這將是這樣的。感謝您提供快速解決方案。 – renevdkooi