Se você está procurando um espaço, isso seria " "
(um espaço).
Se você estiver procurando por um ou mais, é " *"
(são dois espaços e um asterisco) ou " +"
(um espaço e um plus).
Se você estiver procurando por espaçamento comum, use "[ X]"
ou "[ X][ X]*"
ou "[ X]+"
onde X
é o caractere de tabulação físico (e cada um é precedido por um único espaço em todos esses exemplos).
Eles funcionarão em todos os * mecanismos regex que eu já vi (alguns dos quais nem têm o um ou mais"+"
caráter de , ugh).
Se você sabe que usará um dos mecanismos regex mais modernos, "\s"
e suas variações são o caminho a percorrer. Além disso, acredito que os limites das palavras também correspondem ao início e ao fim das linhas, importante quando você procura palavras que possam aparecer sem espaços precedentes ou seguintes.
Para o PHP especificamente, esta página pode ajudar.
Na sua edição, parece que você deseja remover todos os caracteres inválidos. O início é (observe o espaço dentro da regex):
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
# ^ space here
Se você também quiser que os truques garantam que exista apenas um espaço entre cada palavra e nenhuma no início ou no final, isso é um pouco mais complicado (e provavelmente outra pergunta), mas a idéia básica seria:
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag); # remove space from start
$newtag = preg_replace ("/ $/", "", $tag); # and end