如何替换perl中的空格

时间:2011-03-08 05:41:53

标签: perl string

chomp($myString);
$myString =~ s/\///g;

我可以用

替换这两个
$myString =~ s/\s//g;

有什么区别吗?请解释一下。

3 个答案:

答案 0 :(得分:10)

如果$ myString存在,你的第一个代码将在$ myString结尾处换行,然后删除所有“/”字符。第二行代码将删除所有空格字符。有拼写错误吗?

也许你想知道你可以取代它:

chomp($myString);
$myString =~ s/\s//g;

用这个:

$myString =~ s/\s//g;

如果那是问题,那么是的。由于换行符号为空格,因此第二个代码示例执行上述两行的作业。

答案 1 :(得分:1)

来自perldoc chomp

chomp 当您担心最终记录可能缺少其换行符时,从输入记录的末尾删除换行符。

在段落模式($/ = "" )中,它会从字符串中删除所有尾随换行符。 在slurp模式($/ = undef)或固定长度记录模式($/是对整数等的引用时,请参阅perlvar) chomp()将不会删除任何东西。

你可以

等字符串中删除前导和尾随空格
$string =~ s{^\s+|\s+$}{}g

答案 2 :(得分:0)

Chomp将删除字符串末尾的换行符,但不会删除空格。典型的修剪函数使用以下两个替换行:

$string =~ s/^\s+//;
$string =~ s/\s+$//;

第一行删除字符串开头的所有空格,第二行删除字符串结尾后的空格。