私はこの小さなスクリプトを持っています:
my @list = ('R3_05_foo.txt','T3_12_foo_bar.txt','01.txt');
foreach (@list) {
s/(\d{2}).*\.txt$/$1.txt/;
s/^0+//;
print $_ . "\n";
}
期待される出力は
5.txt
12.txt
1.txt
しかし、代わりに、私は得る
R3_05.txt
T3_12.txt
1.txt
最後のものは問題ありませんが、正規表現がこの場合の文字列の開始を与える理由を理解できません$1
。