hola
aqui tienes la explicacion de las expresiones regulares:
http://ar.php.net/manual/es/ref.pcre.php
para reemplazar todos los caracteres que no sean alfanumericos por un guion puedes usar:
Código PHP:
$texto = preg_replace("/[^a-z0-9]/","-",$texto);
exitos!