PatExclude or PatReplace can do the trick.
For example, this will remove any characters that are not alphanumeric while preserving spaces (note the space after the "Z"):
SELECT f.* FROM dbo.PatExclude8K(<yourstring>, '[^0-9a-zA-Z ]') AS f;
note that this is an Inline table valued function (because they are faster than scalar). So you'll need to understand how to use APPLY.
"I cant stress enough the importance of switching from a sequential files mindset to set-based thinking. After you make the switch, you can spend your time tuning and optimizing your queries instead of maintaining lengthy, poor-performing code."-- Itzik Ben-Gan 2001