Im trying to detect newlines in PHP and replace them with <br> which are not preceded by </ul>, <ul>or </li>.
te
<ul>
<li>iasd</li>
<li>asd</li>
</ul>
ja
123
should result in
te<br>
<ul>
<li>iasd</li>
<li>asd</li>
</ul>
ja<br>
123<br>
The Regex I came up with so far (^|^.|.[^((\/li>)|<\/ul>|<ul>)])\r?\n works, but also is triggered when there only is a > in front of the new line.
` – Lord Elrond Feb 28 '20 at 06:07
[^<]*(?:<(?!/?ul>)[^<]*)*
\s*(*SKIP)(*F)|$~sm', '', $text)`, see https://3v4l.org/2JnT2 – Wiktor Stribiżew Feb 28 '20 at 08:42