Regexp - вырезать слова менее Х символов

Development8 dec 2010

Недавно столкнулся с задачей - как при помощи регулярных выражений вырезать из строки все слова короче 3 символов (может быть применено, к примеру, при составлении запроса поиска слов в бд). Долго поламав над этим голову, наткнулся на такое вот решение:

s = 'aa bbb c d e ff gggg qq';
s = (' '+s+' ').replace(/ +/g,' ');
s.replace(/ \S{1,2} /g,'').replace(/ +/g,' ').trim();

Строго НЕ рекомендую использовать сий метод хоть где-либо, где необходима адекватная производительность. К примеру, того же самого можно достичь в php, используя explode, foreach и mb_strlen. Ну и на последок, для тех, кому регулярные выражения кажутся совсем уж дремучим лесом, следующее выражение позволяет просто вырезать все слова из строки: s.match(/\S+/g)

Если перевести его на русский язык, получим:

Если эта тема вас заинтересовала, то рекомендую ознакомиться со следующим руководством phpclub.ru.