Если вы ищете пробел, это будет " "
(один пробел).
Если вы ищете один или несколько, это " *"
(это два пробела и звездочка) или " +"
(один пробел и плюс).
Если вы ищете общий интервал, используйте "[ X]"
или "[ X][ X]*"
или "[ X]+"
где X
физический символ табуляции (и каждому из них предшествует один пробел во всех этих примерах).
Они будут работать в каждом * движке регулярных выражений, который я когда-либо видел (у некоторых даже нет одного или более "+"
символов, тьфу).
Если вы знаете, что будете использовать один из более современных движков регулярных выражений, "\s"
и его вариации - это то, что вам нужно. Кроме того, я считаю, что границы слов совпадают с началом и концом строк, что важно, когда вы ищете слова, которые могут появляться без предшествующих или следующих пробелов.
Специально для PHP эта страница может помочь.
Из вашего редактирования кажется, что вы хотите удалить все недопустимые символы. Начало этого (обратите внимание на пространство внутри регулярного выражения):
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
# ^ space here
Если вы также хотите, чтобы хитрость обеспечивала наличие только одного пробела между каждым словом и ни одного в начале или в конце, это немного сложнее (и, вероятно, другой вопрос), но основная идея будет такой:
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag); # remove space from start
$newtag = preg_replace ("/ $/", "", $tag); # and end