Обнаружение новых строк без предшествующих символов - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь обнаружить новые строки в PHP и заменить их на <br>, которым не предшествуют </ul>, <ul> или </li>.

te
<ul>
<li>iasd</li>
<li>asd</li>
</ul>
ja
123

должно привести к

te<br>
<ul>
<li>iasd</li>
<li>asd</li>
</ul>
ja<br>
123<br>

Regex, который я придумал до сих пор (^|^.|.[^((\/li>)|<\/ul>|<ul>)])\r?\n, работает, но также срабатывает, когда перед новой строкой есть только >.

1 Ответ

0 голосов
/ 28 февраля 2020

Как насчет замены:

(?<!(?:<ul>)|(?:<\/ul>)|(?:<\/li>))([\n\r]|$)

На <br>\1

Как видно здесь

Объяснение:

Использование негативных взглядов и хорошо, взглядов в целом делает вашу жизнь намного проще. Вы можете узнать больше об этом здесь: https://www.regular-expressions.info/lookaround.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...