@JZorkiy

Как исключить последнюю (пустую) группу захвата в выражении?

Есть строка вида:
Первая строка.\r\nВторая строка.\r\n\r\nЧетвертая строка.

Нужно каждую, Первую, Вторую, пустую и Четвертую, поместить в тег
<p></p>
Чтоб вышло:
<p>Первая строка.</p>
<p>Вторая строка.</p>
<p></p>
<p>Четвертая строка.</p>

Но в моем варианте появляется еще и пятая (пустая) группа захвата, которая также помещается в тег:
(.*?|\\r\\n)(\\r\\n|$)
Результат обработки:
<p>Первая строка.</p>
<p>Вторая строка.</p>
<p></p>
<p>Четвертая строка.</p>
<p></p>

Можно ли как-то исключить незапланированную (последнюю) строку? )
Спасибо.
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
@dodo512
$str = "Первая строка.\r\nВторая строка.\r\n\r\nЧетвертая строка.";
$str = preg_replace('#^([^\r\n]*)(\r?\n|\z)#m', '<p>$1</p>$2', $str);
echo $str;

https://rextester.com/KLNJ82386
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы