2013-05-07 51 views
0

我需要刪除所有\ r \ n和\從一個大$字符串命令,我怎麼能做到呢?如何從一個字符串中刪除 r n和在Perl

例字符串:

$string = '\/9jAAMAAAAB\r\nAAEAAABAAAD\/2' 

需要它看起來像這樣:

$string = '/9jAAMAAAABAAEAAABAAAD/2' 
+0

如果您縮水字符串儘可能小,同時還展示您的使用情況下,它會使事情變得更容易 – xaxxon 2013-05-07 18:46:54

+0

您展示套$字符串有文字回車分配和\ r和\ n所在的換行符;忽略正斜槓前的反斜槓。字符串看起來像什麼開始? (例如,向我們展示的'使用數據::自卸車輸出;打印數據:: Dumper->新([$字符串) - >簡潔(1) - > Useqq(1) - >導出()') – ysth 2013-05-07 18:51:44

+0

是的文本文字反斜槓字符後跟一個'N',或者是在字符串中嵌入的''性格? – 2013-05-07 19:11:12

回答

0

這裏是一個辦法做到這一點:

$new_string = $string =~ s/\\|\R//g; 
print "$new_string"; 
+0

這個打印 「2」。 '=〜'具有比'='更高的優先級。 – mob 2013-05-07 18:48:26

+0

這個沒有工作,只刪除\不是R和n – BluGeni 2013-05-07 19:15:56

+0

@BluGeni:什麼是Perl的版本,你使用? \ R在Perl 5.10或更高版本中。 您可以使用\\ [R | \\ñ代替。 – cuonglm 2013-05-08 02:41:56

2
#!/usr/bin/perl 
$string = "something\\r\\n\\"; 
$string =~ s/(\\r)|(\\n)|(\\)//g; 
print $string; 

=> something 
1

這裏的另一種選擇:

use strict; 
use warnings; 

my $string = '\/9jAAMAAAAB\r\nAAEAAABAAAD\/2'; 
$string =~ s!\\[rn]?!!g; 
print $string; 

輸出:

/9jAAMAAAABAAEAAABAAAD/2 
相關問題