Регулярка удаления коротких слов. В чём ошибка?

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

flower

Новичок
Регулярка удаления коротких слов. В чём ошибка?

$str=preg_replace("/\s(\S{1,3})\s/"," ",$str);
Для стринга "а а а" выдаёт "а а". А надо, чтовы все слова короче 3х символов убирались. В чём ошибка?
 
А у Вас в условии так: «заменяется только то, что окружено пробелами».
 
Можно разделить стринг на слова в массив, а потом пересобрать из него стринг, не используя слова короче 3х символов. А регуляркой такое возможно?
Пример в начальном посте видимо не срабатывает на 1ом и последнем символах. Если сделать
$str=preg_replace("/(^|\s)(\S{1,3})(\s|$)/"," ",$str);
то не срабатывает на среднем.
 
есть еще "граница слова". про нее написано в мануале
 
Сверху