如何从Perl中的字符串中删除转义码?

时间:2010-07-16 22:45:14

标签: regex 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显然看到它是一个控制或逃脱代码,真的搞砸了。

任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:3)

我会使用不同的分隔符(除了/)使正则表达式在眼睛上更容易:

s!FileSystems\\/\\!/ !g

答案 1 :(得分:0)

这两行应该这样做:

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

答案 2 :(得分:-1)

使用不同的。分隔符将使这更容易混淆。

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

会做的伎俩