2011-07-14 199 views
4

我'使用以下正則表達式從字符串中刪除換行符:換行符替換字符串中使用正則表達式

$description =~ s/\r//; 
$description =~ s/\n//; 

但事後我爲獲得如此:

$description =~ m/\n/ 

似乎正則表達式沒有替換字符串中的所有換行符,對此有何幫助?

回答

4

您的替換不是全局替換 - 它們只替換字符串中模式的第一個實例。爲了使全局替換,加AG最後的斜槓之後,就像這樣:

$description =~ s/\r//g; 
$description =~ s/\n//g; 

您還可以使用的字符集的兩個換人合併成一個單一替代:

$description =~ s/[\n\r]//g; 
+0

很多湯姆,工作perfecto! – webaloman

9

如果你試圖刪除單個字符,請使用tr而不是s///

$description =~ tr/\r\n//d; 

這將消除任何\r\n的所有出現不管串在各自的崗位的。