В наличии PHP5, какое хорошее preg_replace
выражение для выполнения этого преобразования:
заменить новые строки на <br />
, но только в пределах <pre>
блоков
(Не стесняйтесь делать упрощающие предположения и игнорировать угловые случаи. Например, мы можем предположить, что теги будут одной строкой, а не патологическими вещами, такими как )
Введите текст:
<div><pre class='some class'>1
2
3
</pre>
<pre>line 1
line 2
line 3
</pre>
</div>
Выход:
<div><pre>1<br />2<br />3<br /></pre>
<pre>line 1<br />line 2<br />line 3<br /></pre>
</div>
(Мотивирующий контекст: попытка закрыть ошибку 20760 в расширении wikimedia SyntaxHighlight_GeSHI и обнаружение того, что мои навыки PHP (в основном я занимаюсь python) не на высоте).
Я открыт для других решений, кроме regexen, но предпочтительнее небольшой (например, создание механизма синтаксического анализа html является излишним).