正则表达式:如何在Perl中删除文件名之间的额外空格

时间:2012-10-12 14:58:31

标签: regex perl filenames

如何删除Perl中文件名之间的额外空格

前导和尾随空格可以通过regex $ line = ~s / ^ \ s + | \ s + $ // x;

删除

这就是我的代码:

use File::Find;
find (\&wanted, '.');
sub wanted {
    my $file = $File::Find::name;
    $file =~ s/\$//g;
    print "**file = $file\n";
}

$file可以是:

My File.jpg
myfile$
$myfile
my$file

要从我的文件名中删除$我正在使用$file =~ s/\$//g;这也适用于空格吗?

2 个答案:

答案 0 :(得分:1)

$file =~ s/\s+/ /g;

将删除连续的空白字符并将其替换为单个空格。

答案 1 :(得分:-1)

对于字符串中间的多个空间块,您可以做的是通过正则表达式将字符串拆分为空间块,然后使用perl中的split(/\s+/, $data)join(" ", @LIST)函数加入完整的sting。

正如@TLP所指出的,这里是使用正则表达式的更新代码:

$str =~ s/\s+/ /g;