考虑以下HTML字符串:
<p>This is line 1 <br /> and this is line 2</p>
如何使用PHP / Regex
将以上字符串替换为上述字符串<p><span class="single-line">This is line 1</span><span class="single-line">and this is line 2</span></p>
答案 0 :(得分:1)
我并不是真的建议你真的这样做(因为恕我直言,你误用了标记和类),但实际上它很简单:
你替换
<p>
与
<p><span class="single-line">
和
<br />
与
</span><span class="single-line">
最后
</p>
与
</span></p>
可以替换字符串的PHP函数是strtr
Docs。
请注意,这仅适用于您在问题中提供的HTML片段。如果您需要更精确,请考虑使用DOMDocument
和DOMXPath
,如上所述。
答案 1 :(得分:1)
这有效,但我建议你不要依赖正则表达式进行HTML解析/转换:
$string = '<p>This is line 1 <br /> and this is line 2</p>';
$pattern = '~([^<>]+)<br[[:blank:]]*/?>([^<>]+)~i';
$replacement = '<span class="single-line">$1</span><span class="single-line">$2</span>';
echo preg_replace($pattern, $replacement, $string);