あなたのやり方はうまくいきますが、少し時間がかかるかもしれません。ここには、以前の SO の質問に対する素晴らしい回答があります。C# ではなく PHP についての質問ですが、簡単に移植できると思います。
編集してサンプル コードを追加します。
public string FilterWords(string inputWords) {
Regex wordFilter = new Regex("(puppies|kittens|dolphins|crabs)");
return wordFilter.Replace(inputWords, "<3");
}
多かれ少なかれ、それはあなたのために働くはずです。
OPの説明に答えるために編集:
猥褻な表現を自動的に削除するつもりはありません... 私の Web アプリでは、「悪い」と思われる単語が使用された場合に通知を受け取りたいです。
上記の置換部分と同じように、何かが次のように一致するかどうかを確認できます。
public bool HasBadWords(string inputWords) {
Regex wordFilter = new Regex("(puppies|kittens|dolphins|crabs)");
return wordFilter.IsMatch(inputWords);
}
true
渡された文字列にリスト内の単語が含まれている場合に返されます。