$regex = '#^.*?(hate).*$#ims';
$str = preg_replace($regex, '', $str);
Чтобы добавить больше "плохих слов", просто добавьте их в ():
$regex = '#^.*?(hate|anotherbadword|yetanother|etc).*$#ims';
Начальный ^ и конечный $ соответствуют полной строке. Параметр i предназначен для сопоставления без учета регистра. M включает многострочный режим (так что ^ и $ соответствуют всей строке, а не одной строке в ней). S включает DOTALL (поэтому. Также соответствует символам новой строки).
Вы могли бы