use str_replace to remove the special characters before the preg_replace replaces the slashes:
for example:
<?php echo ((isset($_POST["NewsTitle"]))?preg_replace('/[^0-9a-z]/i','-',str_replace(array("!","?","@"),"",$_POST["NewsTitle"])):""); ?>
Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.
These out-of-the-box solutions provide you proven, tested applications that can be up and running now. Build a store, a gallery, or a web-based email solution.