Si usted está buscando un espacio, que sería " "
(un espacio).
Si usted está buscando para uno o más, es " *"
(que es dos espacios y un asterisco) o " +"
(un espacio y un plus).
Si usted está buscando para el espaciamiento común, usar o "[ X]"
"[ 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 trabajarán en cada * motor de expresiones regulares que he visto nunca (algunos de los cuales ni siquiera tienen el uno-o-más "+"
carácter, uf).
Si sabe que utilizará uno de los motores de expresiones regulares 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, importante cuando busca palabras que pueden aparecer sin espacios anteriores o posteriores.
Para PHP específicamente, this page puede ayudar.
De tu edición, parece que desea eliminar todos los caracteres no válidos El inicio de este está (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 el engaño para asegurar que sólo 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
Hmm ... también hay ninguna duda sobre la correspondencia de una 'a' o 'b' ...;) – hop
debería ver los ejemplos de expresiones regulares [] (http://stackoverflow.com/questions/16166819/php-regular-expressions) –