webbuddu
@webbuddu
Начинающий.

Как составить регулярное выражение для замены (пробел дефис пробел " — ") на дефис «-»?

$text = ' Длинный    объемный текст с  ----- --- лишние пробелами -- африка ';
$text1 = preg_replace('|[\s]+|s', ' ', $text);
$text2 = preg_replace('|-[\s]+|s', '-', $text1);
$text3 = preg_replace('|[\s]-+|s', '-', $text2);
echo $text3; // Длинный объемный текст с-лишние пробелами-африка


Как правильно составить 1-но регулярное выражение чтобы из переменной $text получить текст как в переменной $text3 ?
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Aricus
Не проверял, но, вроде, должно работать. Не знаю, откуда вы взяли | в качестве ограничителей. Во всех известных мне языках ограничители регулярных выражений - / . Также не нужно плодить переменные сверх необходимости.
$text = preg_replace('/[\s]+/s', ' ', $text);
$text = preg_replace('/[\s\-]*-[\s\-]*/s', '-', $text);
echo $text ;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы