這些片段似乎等同於我:爲什麼替代正則表達式失敗?
$ perl -E '
my $var="/usr/local/bin/gcc";
$var =~ s/([^\/]*)$/$1/;
print "$var\n";'
/usr/local/bin/gcc
$ perl -E '
my $var="/usr/local/bin/gcc";
$var =~ /([^\/]*)$/;
print "$1\n";'
gcc
然而,在片段1替代不起作用。它打印/usr/local/bin/gcc
而不是gcc
而$1
是正確的,如第二個片段所證明的。
這裏有什麼問題?
這將打印什麼:'$ perl的-E' 我是$ var = 「在/ usr/local/bin目錄/ gcc的」; $ var =〜s /^.*([^\/]*)$/$ 1 /; print「$ var \ n」;'' – Jim
對。我忘了添加一個?阻止第一個*被貪婪。 –