in reply to prohibiting certain strings

The problem is that any script restrictive enough to catch everything will also flag legitimate posts (as mentioned above). Probably the best thing to do is score users on the number of bad words they use, and if the count goes over a certain total number and a certain average number per post, then have them banned automatically. This avoids the problem of people seeing their post has been blocked and then making creative variations (since they won't know you're counting the bad words until the count slays them), and it should be pretty easy to look up people who are high on the bad word ranking but haven't yet been officially banned by you (as opposed to auto-banned) and check for genuine bad words in their posts.

Needless to say, an exact match for a bad word would be scored high, whereas a match once characters have been removed (or added - symbols are often used in place of letters) would be scored less. One might debate that a swear word creative enough to defeat all algorithms is not as damaging as a regular swear word anyhow.