Jeśli szukasz miejsca, byłoby to " "
(jedno miejsce).
Jeśli szukasz jednego lub więcej, jest to " *"
(to dwie spacje i gwiazdka) lub " +"
(jedna spacja i plus).
Jeśli szukasz wspólnego dystansowej, użytkowania "[ X]"
lub "[ X][ X]*"
lub "[ X]+"
gdzie X
jest fizyczny znak tabulatora (i każda z nich jest poprzedzona pojedynczym odstępem we wszystkich tych przykładach).
Będą działać w każdym * silniku wyrażeń regularnych, jaki kiedykolwiek widziałem (niektóre z nich nie mają nawet jednej lub więcej "+"
znaków, ugh).
Jeśli wiesz, że będziesz używać jednego z nowocześniejszych silników regex, "\s"
a jego odmiany są odpowiednie. Ponadto uważam, że granice słów pasują również do początku i końca linii, co jest ważne, gdy szukasz słów, które mogą się pojawiać bez poprzedzania lub następowania spacji.
W przypadku PHP ta strona może pomóc.
Z edycji wydaje się, że chcesz usunąć wszystkie niepoprawne znaki. Początek jest następujący (zwróć uwagę na spację w wyrażeniu regularnym):
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
# ^ space here
Jeśli chcesz także podstępu, aby upewnić się, że między każdym słowem jest tylko jedna spacja, a na początku lub na końcu nie ma, jest to nieco bardziej skomplikowane (i prawdopodobnie inne pytanie), ale podstawową ideą byłoby:
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag); # remove space from start
$newtag = preg_replace ("/ $/", "", $tag); # and end