Если вы ищете пробел, это будет " "
(один пробел).
Если вы ищете один или несколько, это " *"
(это два пробела и звездочка) или " +"
(один пробел и плюс).
Если вы ищете общий интервал, используйте "[ 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