Не работает регулярное выражение вычистки строки от коротких слов

  • Автор темы Автор темы Nicki
  • Дата начала Дата начала

Nicki

Новичок
Не работает регулярное выражение вычистки строки от коротких слов

Что то не пойму почему не работает регулярка. Мне нужно убрать все слова короче 3 символов заменив их пробелом.

$str = " a aa a aaa a a a aaaa a aaaaa a ";
$str = preg_replace("/\s+\S{1,3}\s+/", ' ', $str);

Выводит " aa aaa a aaaa aaaaa ", т.е. убирает не все слова, а только часть. В чем моя ошибка, подскажите пожалуйста?

Пробовал так же и следующие варианты:

preg_replace("/\s+[\S]{1,3}\s+/", ' ', $str);
preg_replace("/\s+([\S]{1,3})\s+/", ' ', $str);

результат один и тот же.
 
Сверху