正则表达式 - 删除末尾的空行

时间:2016-12-18 21:14:28

标签: php regex preg-replace

我想删除邮件末尾的空引号行:

> Hello
> 
> thats quotet>
>
>

> Hello
> 
> thats quotet>

但正则表达式preg_replace("/^>\W*$/m", "", $input_lines)不会成功,因为它也会删除>不在最后的空行。

编辑:还有问题,只有>应该删除一行的开头

2 个答案:

答案 0 :(得分:3)

使用rtrim,它会从字符串的右侧删除指定的字符。我们要删除">"和最后的新行字符。

<强>代码

echo rtrim($input, ">".PHP_EOL);

<强>结果

> Hello
> 
> thats quotet

答案 1 :(得分:2)

您可以使用:

$result = preg_replace('~^(?:^>\h*\R?)*+\z~m', '', $input_lines);

为了避免无用的测试,你也可以尝试这种更多的手动模式:

$result = preg_replace('~^(?:^>\h*\R?)*+(*SKIP)\z~m', '', $input_lines);