Si está buscando un espacio, sería " "
(un espacio).
Si está buscando uno o más, es " *"
(son dos espacios y un asterisco) o " +"
(un espacio y un signo más).
Si usted está buscando para el espaciamiento común, el uso "[ X]"
o el "[ X][ X]*"
o "[ X]+"
donde X
es el carácter de tabulación física (y cada uno está precedido por un solo espacio en todos los ejemplos).
Estos funcionarán en todos los motores * regex que he visto (algunos de los cuales ni siquiera tienen el carácter de uno o más "+"
, ugh).
Si sabe que usará uno de los motores regex más modernos, "\s"
y sus variaciones son el camino a seguir. Además, creo que los límites de las palabras también coinciden con el inicio y el final de las líneas, lo que es importante cuando busca palabras que pueden aparecer sin espacios anteriores o siguientes.
Para PHP específicamente, esta página puede ayudar.
De su edición, parece que desea eliminar todos los caracteres no válidos. El comienzo de esto es (tenga en cuenta el espacio dentro de la expresión regular):
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
# ^ space here
Si también desea trucos para asegurarse de que solo hay un espacio entre cada palabra y ninguno al principio o al final, eso es un poco más complicado (y probablemente otra pregunta), pero la idea básica sería:
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag); # remove space from start
$newtag = preg_replace ("/ $/", "", $tag); # and end