假设我有$str = "onetwo"
。
我想编写一个忽略空格的reg ex替换命令(这使得它更具可读性):
$str =~ s/
one
two
/
three
four
/x
而不是"threefour"
,这会产生"\nthree\nfour\n"
(其中\n
是换行符)。基本上/x
选项会忽略替换的匹配方的空白而不是替换方。我怎样才能忽略替换方面的空白?
答案 0 :(得分:11)
s{...}{...}
基本上是s{...}{qq{...}}e
。如果您不想要qq{...}
,则需要将其替换为其他内容。
s/
one
two
/
'three' .
'four'
/ex
甚至:
s/
one
two
/
clean('
three
four
')
/ex
clean
的可能实现:
sub clean {
my ($s) = @_;
$s =~ s/^[ \t]+//mg;
$s =~ s/^\s+//;
$s =~ s/\s+\z//;
return $s;
}