我的理解是,/[^\A] +/mg
它将匹配全局的一个或多个空格,而不是在字符串的开头或换行符之后。
显然,我错了。
#!/usr/bin/env perl
use strict;
use warnings;
my $str = " word1 word2\n word3 word4 word5\n";
print "str before = $str\n";
$str =~ s/[^\A] +/ /mg;
print "str after = $str\n";
输出:
str before = word1 word2
word3 word4 word5
str after = word word2 word word word5
所需的输出是:
str before = word1 word2
word3 word4 word5
str after = word1 word2
word3 word4 word5
因此,在数量上保留了前导空格,但在每行开头之后出现的多个空格被减少为一个空格。
perldoc perlretut
我没有找到我正在寻找的东西perldoc perlre
(即使在搜索了 "[^" with 的所有实例之后/\[\^
)。提前谢谢了。