Есть ещё пример:
<?php
##################################################################
# Скрипт diktator_antimat v1.1_alfa #
# Автор Дмитрий Перов method_05@list.ru #
# #
# Скрипт Распостраняется бесплатно , ссылка #
# На Автора - по желанию...(знаю о чём вы сейчас подумали=)) #
# #
# Обработал этим скриптом большой объём текста, вот #
# слова которые распознаются как маты:грёбля, грёбаный, глухую ,#
# ХЛЕБАЛО,ХЛЕБАЛЬНИК,хулиган... #
# #
# Сложно просмотреть и предусмотреть Всё... #
# Так что о багах - мне на мыло... #
# #
# Всякого рода Модификации скрипта без согласования #
# с Автором запрещены! #
# Удачи! #
##################################################################
@setlocale(LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));
$pattern = "/\w{0,5}[хx]([хx\s\!@#\$%\^&*+-\|\/]{0,6})[уy]([уy\s\!@#\$%\^&*+-\|\/]{0,6})[ёiлeеюийя]\w{0,7}|\w{0,6}[пp]([пp\s\!@#\$%\^&*+-\|\/]{0,6})[iие]([iие\s\!@#\$%\^&*+-\|\/]{0,6})[3зс]([3зс\s\!@#\$%\^&*+-\|\/]{0,6})[дd]\w{0,10}|[сcs][уy]([уy\!@#\$%\^&*+-\|\/]{0,6})[4чkк]\w{1,3}|\w{0,4}[bб]([bб\s\!@#\$%\^&*+-\|\/]{0,6})[lл]([lл\s\!@#\$%\^&*+-\|\/]{0,6})[yя]\w{0,10}|\w{0,8}[её][bб][лске@eыиаa][наи@йвл]\w{0,8}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[uу]([uу\s\!@#\$%\^&*+-\|\/]{0,6})[н4ч]\w{0,4}|\w{0,4}[еeё]([еeё\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[нn]([нn\s\!@#\$%\^&*+-\|\/]{0,6})[уy]\w{0,4}|\w{0,4}[еe]([еe\s\!@#\$%\^&*+-\|\/]{0,6})[бb]([бb\s\!@#\$%\^&*+-\|\/]{0,6})[оoаa@]([оoаa@\s\!@#\$%\^&*+-\|\/]{0,6})[тnнt]\w{0,4}|\w{0,10}[ё]([ё\!@#\$%\^&*+-\|\/]{0,6})[б]\w{0,6}|\w{0,4}[pп]([pп\s\!@#\$%\^&*+-\|\/]{0,6})[иeеi]([иeеi\s\!@#\$%\^&*+-\|\/]{0,6})[дd]([дd\s\!@#\$%\^&*+-\|\/]{0,6})[oоаa@еeиi]([oоаa@еeиi\s\!@#\$%\^&*+-\|\/]{0,6})[рr]\w{0,12}/i";
$replacement = "Цензура";
$text = preg_replace($pattern, $replacement, $text);
/*
$pattern - то что ищем
$replacement - то чем заменяем
$text - то что обрабатываем
*/
?>