Мне нужно проверить строку на наличие нескольких последовательных пробелов и заменить их на <br>.
Я пытаюсь позволить пользователю волшебным образом поместить <br> в строку, используя два пробела, которые затем будут добавлены в таблицу с <br> вместо двух пробелов.
Я пробовал несколько комбинаций preg_replace, но не совсем понял.
$value = preg_replace('/\s+\s+/','<br>',$value);
$value = preg_replace('/\s+\','<br>',$value);
$value = preg_replace('/\s++/','<br>',$value);
Очевидно, я не очень хорошо разбираюсь в preg_replace, может кто-нибудь предложить решение?
Пожалуйста, не используйте регулярное выражение для анализа HTML. Используйте парсер HTML.
Что ж, ваше первое регулярное выражение должно работать, хотя это странный способ записи /\s{2,}/. Остальные недействительны / не имеют смысла.
@ miken32 Единственная проблема в том, что я об этом не подумал. Я попробовал вашу очень простую и ясную идею / вопрос и отлично работает во всех ситуациях, которые меня беспокоят. Спасибо.






Для простого примера у меня есть ответ @ miken32.
$value = preg_replace('/ /','<br>',$value);
Прекрасно работает.
Если вы хотите заменить 2 пробела, вы также можете использовать str_replace:
echo str_replace(" ", " ", $value);
Если вы хотите использовать регулярное выражение, вы можете использовать \h{2} для сопоставления двух горизонтальных пробельных символов.
$value = "Two spaces and one space and three spaces and ten spaces";
echo preg_replace('/\h{2}/', '<br>', $value);
Что не так просто с
preg_replace('/ /','<br>',$value);