2010-07-16 70 views
0

原始字符串作爲傳遞:如何在Perl中剝離字符串中的轉義碼?

FileSystems\/\1K-blocks=5036316, FileSystems\/\Available=3295944, FileSystems\/\Filesystem=/dev/cciss/c0d0p2, FileSystems\/\Use%=32% 

我需要什麼樣的輸出是:

/ 1K-blocks=5036316,/Available=3295944,/Filesystem=/dev/cciss/c0d0p2,/Use%=32% 

而是試圖用一個正則表達式是給我各種頭痛刪除「\」。我不斷收到:

Fi eSys ems/☺K-b o ks=5036316 Fi eSys ems/Avai ab e=3295944 Fi eSys ems/Fi esy 
s em=/dev/ iss/ 0d0p2 Fi eSys ems/SE%=32% 

Perl顯然看到它是一個控制或轉義代碼,真的搞砸了。

任何建議將不勝感激。

+0

是輸入數據UTF8? – IanNorton 2010-07-16 22:55:16

+0

請顯示您的代碼。 – Svante 2010-07-17 09:24:55

回答

0

這兩條線應該這樣做:

s/FileSystems\\//g; 
s/\\/ /g; 
3

我會用不同的分隔符(比/其他),使正則表達式一點更容易對眼睛:

s!FileSystems\\/\\!/ !g 
-1

使用差異。分隔符會使這一點變得更加混亂。

$line =~ s!FileSystem\\/\\!/\s!g 

會做的伎倆

+0

您不能在替換字符串中使用\ s。 – Toto 2010-07-21 14:52:25