@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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Wanted. Санкт-Петербург
До 450 000 ₽
Wanted. Санкт-Петербург
До 120 000 ₽
ФАЙВДЖЕН Москва
от 250 000 ₽
28 нояб. 2024, в 21:25
5000 руб./за проект
28 нояб. 2024, в 18:46
3000 руб./за проект
28 нояб. 2024, в 17:46
10000 руб./за проект