【发布时间】:2010-12-03 18:40:28
【问题描述】:
在 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>
(激励上下文:尝试关闭 wikimedia SyntaxHighlight_GeSHI 扩展中的错误 20760,并发现我的 PHP 技能(我主要使用 python)不合格)。
除了正则表达式之外,我对其他解决方案持开放态度,但首选较小的解决方案(例如,构建 html 解析机制是多余的)。
【问题讨论】:
标签: php regex html-parsing