PHP-如何在换行符前用'>'删除换行符

时间:2018-12-20 17:39:27

标签: php regex preg-replace

我的输入文字是这样的

bla;bla<ul>
<li>line one</li>
<li>line one</li>
<ul>bla
line two
line tree

我只想用空格替换包含“>”的行; 在行尾没有'>'的另一行将被忽略。

输出应为:

bla;bla<ul><li>line one</li><li>line one</li><ul>bla
line two
line tree

替换该行的PHP代码应该是什么?

我尝试过

$output = preg_replace( "/\r|\n/", "", $text );

但这不是一个好主意,因为该代码将应用于$ text的所有行

非常感谢您。

现在我可以解决这个问题

$output = preg_replace("/(?<=>)\s+(?=)/", "", $text );

非常感谢您

1 个答案:

答案 0 :(得分:0)

您可以使用>(?:\n|\r\n)正则表达式并将其替换为>,它将与仅位于行尾的>相匹配。

$text = "bla;bla<ul>\n<li>line one</li>\n<li>line one</li>\n<ul>bla\nline two\nline tree";
$output = preg_replace( "/>(?:\n|\r\n)/", ">", $text );
echo $output;

哪个提供了您期望的以下输出

bla;bla<ul><li>line one</li><li>line one</li><ul>bla
line two
line tree

Live Demo