I can see one problem with this off the bat, what about words alone that someone might want to filter but are valid (ok) words when it's a subset of another word ...
For example, use "ass" ... alone some people may consider this an offensive word, but then the words "class" "grass" and "pass" you wouldn't want to filter.
The only way around this that I can think of is to to implement some sort of wild card mechanism (* and ?), but that might be a lot of work to parse
Vx