【发布时间】:2014-12-04 18:56:35
【问题描述】:
考虑一下:
my @str = ("Farbkeil","L 0AA61 Rec","L 0AA61 Rec - 150 dpi",,"L 0AA61 Rec - 400 dpi");
for my $s (@str) {
# my ($m) = ($s =~ /^([^-]*)(?=-)/);
# my ($m) = ($s =~ /^([^-]*) (?=-)/);
my ($m) = ($s =~ /^([^-]*)( - *.)?/);
print "$s => -$m-\n";
}
它产生这个输出
Farbkeil => -Farbkeil-
L 0AA61 Rec => -L 0AA61 Rec-
L 0AA61 Rec - 150 dpi => -L 0AA61 Rec -
L 0AA61 Rec - 400 dpi => -L 0AA61 Rec -
我想要的是去掉可选的“-”之前的空格,让它看起来像
Farbkeil => -Farbkeil-
L 0AA61 Rec => -L 0AA61 Rec-
L 0AA61 Rec - 150 dpi => -L 0AA61 Rec-
L 0AA61 Rec - 400 dpi => -L 0AA61 Rec-
我已经尝试过上面的正则表达式,最后一个是最接近但不完全的。猜测也没有用,出乎意料...当然我可以只修剪结果,但必须有更优雅的方式?
有什么想法吗?
【问题讨论】: