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

flower

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

$str=preg_replace("/\s(\S{1,3})\s/"," ",$str);
Для стринга "а а а" выдаёт "а а". А надо, чтовы все слова короче 3х символов убирались. В чём ошибка?
 

baev

‹°°¬•
Команда форума
А у Вас в условии так: «заменяется только то, что окружено пробелами».
 

flower

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

Dovg

Продвинутый новичок
есть еще "граница слова". про нее написано в мануале
 
Сверху