pamperz666
К примеру слова с корнями “пох”, “нах”, “пид”
Если подходить банально через re или find, то вашу выборку будут попадать такие слова как "
похожий“, ”
находка“ или ”ас
пид“..
Конечно можно потом постоянно мониторить такие слова и вносить их в список ”exclude“. Но вы уверены что сможете их найти среди миллионов на**й или по**й?
Иначе вам нужно сложный семантический анализ, для выделения в слове корней, префиксов, суффиксов и окончаний, и только тогда по корню определять. Задача далеко не тривиальная, и до сих пор не решена до конца ведущими вендорами словарей и переводчиков, и они не спешат делиться исходниками, а вы ”Нужно придумать код“.
Я конечно не знаю полностью условий задачи, но для начала можно банально составить список слов которые однозначно попадают под бан(со всеми падежами и окончаниями), и по ним уже фильтровать разделяя слова по пробелам. Это будет достаточно быстро, и несложно. И решит проблему хотябы непрыкрытого мата.
Но хитрые юзвери достаточно быстро поймут что можно написать ”л_о_х“, или ”пи дар". Но такие финты пропустит и семантический анализатор.