2010-08-20 95 views
12

我有一個MySQL數據庫,我從中提取一個字符串,它是由換行符分隔的 單詞列表。現在我只想刪除尾隨的 換行符。 我嘗試使用了preg_replace作爲刪除拖尾換行

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

它的工作原理,但在字符串所有新行被刪除:( 請幫

謝謝大家

回答

27

您需要添加一行錨的末尾:

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

其更好地避免正則表達式用於這樣一個簡單的替換。這可以很容易地使用rtrim爲完成:

$string = rtrim($string); 

rtrim而不第二參數將除去後whitespace炭,其中包括:

  • 換行符
  • 空間
  • 垂直製表
  • 水平製表
  • 回車
+0

+1指出這個偉大的實用功能。 – Scott 2011-02-12 14:02:59

+0

這是否刪除所有空白,或只有最後? – cli 2015-09-16 18:09:18

7

不要使用正則表達式來處理這樣一個瑣碎的任務。您可以使用PHP的rtrim()(可能以"\n"作爲第二個參數)或substr()(如substr($string, 0, -1))或MYSQL的RTRIM()

+3

+1從數據庫中獲取數值 – Gordon 2010-08-20 10:57:12

+0

我更喜歡這個答案 – 2017-09-18 19:19:21