Как мне сопоставить блок текста, который содержит максимум одну новую строку? Блок текста может не находиться в теге. Это то, что у меня есть на данный момент.
$pPattern = '
/(?<=\n|\A) # Preceded by a new line or at the start of the file
(?!<.*>(?:.|\n)*<\/.*>) # Not within a tag
(.+) # Need help here
(?=\n\n|\Z) # Succeeded by double newlines or at end of file
/muxi';
$text = preg_replace($pPattern, "<p>$1</p>", $text);
Я безуспешно пробовал несколько разных групп захвата, таких как ((?:.+\n?)+)
. У кого-нибудь есть предложения?
Я нашел это: Регулярное выражение для сопоставления блока текста до первой двойной новой строки? во время поиска и пытался использовать часть этого кода, но не смог заставить его работать.
Изменить: в качестве примера я буду использовать этот блок текста в качестве примера.
<h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2>
Nulla at erat velit, eu tristique massa.
Donec vehicula lorem et lacus ullamcorper id bibendum nisi euismod.
Vestibulum ac leo nisl, nec fermentum quam.
Maecenas velit ante, varius a interdum molestie, viverra et nunc. In elit erat, interdum in elementum eget, bibendum at augue. Praesent nec quam justo. Cras vestibulum accumsan vehicula. Curabitur leo velit, blandit eget consectetur id, commodo eu ipsum. Nulla vel lacus dolor, a suscipit purus. Aliquam euismod interdum elementum.
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
Donec quis odio iaculis tellus suscipit porta. In hac habitasse platea dictumst. Ut sed risus diam, at ultrices mi. Vestibulum vitae leo justo, eget ultricies diam. Curabitur pharetra ornare lorem, ac semper tortor fringilla ut. Etiam et nisl felis. Quisque ac purus ipsum. Donec interdum elit ac nunc rhoncus eu pulvinar massa ornare. Fusce turpis est, commodo lacinia vulputate at, hendrerit eget tortor.
Отсюда я получаю следующий вывод:
<h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2>
Nulla at erat velit, eu tristique massa.
Donec vehicula lorem et lacus ullamcorper id bibendum nisi euismod.
<p>Vestibulum ac leo nisl, nec fermentum quam.</p>
<p>Maecenas velit ante, varius a interdum molestie, viverra et nunc. In elit erat, interdum in elementum eget, bibendum at augue. Praesent nec quam justo. Cras vestibulum accumsan vehicula. Curabitur leo velit, blandit eget consectetur id, commodo eu ipsum. Nulla vel lacus dolor, a suscipit purus. Aliquam euismod interdum elementum.</p>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
<p></ul></p>
<p>Donec quis odio iaculis tellus suscipit porta. In hac habitasse platea dictumst. Ut sed risus diam, at ultrices mi. Vestibulum vitae leo justo, eget ultricies diam. Curabitur pharetra ornare lorem, ac semper tortor fringilla ut. Etiam et nisl felis. Quisque ac purus ipsum. Donec interdum elit ac nunc rhoncus eu pulvinar massa ornare. Fusce turpis est, commodo lacinia vulputate at, hendrerit eget tortor.</p>
Но я хочу этот вывод:
<h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2>
<p>Nulla at erat velit, eu tristique massa.
Donec vehicula lorem et lacus ullamcorper id bibendum nisi euismod.
Vestibulum ac leo nisl, nec fermentum quam.</p>
<p>Maecenas velit ante, varius a interdum molestie, viverra et nunc. In elit erat, interdum in elementum eget, bibendum at augue. Praesent nec quam justo. Cras vestibulum accumsan vehicula. Curabitur leo velit, blandit eget consectetur id, commodo eu ipsum. Nulla vel lacus dolor, a suscipit purus. Aliquam euismod interdum elementum.</p>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
<p>Donec quis odio iaculis tellus suscipit porta. In hac habitasse platea dictumst. Ut sed risus diam, at ultrices mi. Vestibulum vitae leo justo, eget ultricies diam. Curabitur pharetra ornare lorem, ac semper tortor fringilla ut. Etiam et nisl felis. Quisque ac purus ipsum. Donec interdum elit ac nunc rhoncus eu pulvinar massa ornare. Fusce turpis est, commodo lacinia vulputate at, hendrerit eget tortor.</p>
one line\n<h1>a header</h1>\nanother line
? илиa line <a href="a.htm">with a link</a> in it
? - person jswolf19   schedule 17.02.2011