Kiedyś szukałem skryptów, które cenzurowałyby tekst lepiej niż badwordfiltry podmieniające uprzednio wpisane na sztywno słowa. Skleciłem cenzora opartego na wyrażeniach regularnych odpornego na wprowadzanie krzaków w stylu "n_i_e_c(e)n_zuralny" - po prostu usuwa wszystko co nie jest literą lub spacją. Wiąże się to z dwoma problemami - jeśli wprowadzi się "n i e c e n z u r a l n y" - to cenzor to łyknie. Można zdefiniować wyrażenie regularne, które wyszukiwałoby słów niecenzuralnych rozbitych spacjami, jednak znacznie zmniejszyłoby to wydajność. Drugim problemem są błędy interpunkcyjne. Poprawnie po znaku przestankowym powinna znaleźć się spacja, jeśli jednak ktoś o niej zapomni, dwa sąsiadujące ze sobą wyrazy po połączeniu mogą okazać się słowem niecenzuralnym (np. "wyrzuci;Pozdrowionka"

)
Co do wydajności - przy zagmatwaniu języka polskiego czasem wyrażenia regularne mogą być wydajniejsze od wpisywania pełnej tablicy słów do podmiany. Na przykład chcąc usunąć wszystkie słowa zawierające "bomb", mamy możliwość zdefiniowania prostego wyrażenia regularnego, lub tablicy słów zawierającej między innymi: bomba, bomby, bombom, bombami, bombowy, bombowa, bombowe, bombardowanie, bombardować, zbombardować, zbombardowany...
Używanie wyrażeń regularnych ma tę wadę, że usuniemy faktycznie wszystkie słowa zawierające podsłowo "bomb". Jeśli więc chcemy zezwolić na użycie słowa "bombastyczny" - musimy umieścić to słowo w osobnej tablicy słów dopuszczalnych.
Ok. dość wodolejstwa - efekt mojej pracy można przetestować i ściągnąć pod adresem:
http://www.webforms.pl/cenzor/