我想删除邮件末尾的空引号行:
> Hello
>
> thats quotet>
>
>
到
> Hello
>
> thats quotet>
但正则表达式preg_replace("/^>\W*$/m", "", $input_lines)
不会成功,因为它也会删除>不在最后的空行。
编辑:还有问题,只有>应该删除一行的开头
答案 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);