-3

如何在 Perl 中删除文件名之间的多余空格

正则表达式可以删除前导和尾随空格 $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;这也适用于空格吗?

4

2 回答 2

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

将删除连续的空白字符并用单个空格替换它们。

于 2012-10-12T15:16:25.660 回答
-1

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

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

$str =~ s/\s+/ /g;
于 2012-10-12T15:07:28.137 回答