Регулярное выражение для разбиения повторяющихся символов

#php

#php

Вопрос:

У меня есть поле для комментариев на моем сайте, чего я хочу здесь, так это если пользователь вводит ввод (любой символ), который содержит более 20 символов, и не ставит пробел между ними, тогда он должен поместить пробел между ними.

Например: «asdasdasdasdasdasdasdasdasdasdasd»

Проанализировано: «asdasdasdasdasdasdasdasdasdasdasdasd»

Я думаю, это можно сделать с помощью сравнения строк, но я хочу, чтобы регулярное выражение соответствовало ему или полному решению. Спасибо за любую помощь.

Ответ №1:

это называется переносом слов.

http://php.net/manual/en/function .wordwrap.php

из примеров :

 <?php
$text = "A very long woooooooooooord.";
$newtext = wordwrap($text, 8, " ", true);
echo "$newtextn";
?>

output:

A very long wooooooo ooooord.
  

Комментарии:

1. это приятно, но это не нарушает: $text = «pppppp____asdas__ds_d__as___dasda__sdasd»;

Ответ №2:

Функция wordwrap хорошо выполняет эту работу. Но вот решение на основе регулярных выражений:

 $str = "asdasdasdasdasdasdasdasd";
$str = preg_replace('/(.{20})/','$1 ',$str);
  

Это добавит пробел, даже если входные данные имеют размер 20. Если вы не хотите этого использовать:

 $str = preg_replace('/(.{20})(?=.)/','$1 ',$str);