【问题标题】:Remove trailing newline删除尾随换行符
【发布时间】:2011-04-01 14:25:13
【问题描述】:

我有一个 MySQL 数据库,我从中提取一个字符串,该字符串是由换行符分隔的单词列表。现在我只想删除尾随 换行符。

我尝试使用 preg_replace as

$string = preg_replace('/\n/','',$string);

它可以工作,但是字符串中的所有换行符都被删除了:(

我该怎么做?

【问题讨论】:

    标签: php mysql regex preg-replace


    【解决方案1】:

    你需要添加行尾锚:

    $string = preg_replace('/\n$/','',$string);
    

    对于这种简单的替换,最好避免正则表达式。这可以使用rtrim 轻松完成:

    $string = rtrim($string);
    

    rtrim 不带第二个参数将删除尾随空格字符,其中包括:

    • 换行
    • 空间
    • 垂直标签
    • 水平标签
    • 回车

    【讨论】:

    • 这会删除所有空格,还是只删除最后一个?
    【解决方案2】:

    不要将正则表达式用于这种微不足道的任务。您可以使用 PHP 的 rtrim()(可能使用 "\n" 作为第二个参数)或 substr()(如 substr($string, 0, -1))或 MySQL 的 RTRIM()

    【讨论】:

    • 我更喜欢这个答案
    • rtrim("\n") 对我不起作用。 $string = preg_replace('/\n$/','',$string);工作得很好。
    猜你喜欢
    • 2010-09-21
    • 1970-01-01
    • 2016-08-20
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 2016-03-19
    相关资源
    最近更新 更多