php preg replace добавить звездочки к словам

есть строка "Привет как дела"
нужно обрамить все слова звездочками
результат "*Привет* *как* *дела*"

1 ответов


preg_replace('%(\pL+)%u', '*$1*', $text);


Вам отлично подойдет спецсимвол \b


$in = 'Lorem ipsum dolor sit amet...';
$search = '/\b(\w+)\b/';
$replace = '*$1*';
echo $out = preg_replace($search, $replace, $in); //*Lorem* *ipsum* *dolor* *sit* *amet*...
 
Не стесняйтесь обращаться к мануалам.

UPD:
Для корректной работы с юникодом

$search = '/(w+)/u';
 

При условии, что пробел между словами всегда один, лучше так:


$str = 'Привет как дела';
echo '*'.str_replace(' ','* *',$str).'*';