我有一个文件名包含很多'_',我想取_之间的数字。下面是我的代码尝试获取数字。
$file=~ m|s+/b_(d+)/.*|;
my $number=$1;
print " $numbern";
我的$file就像a_0_b_1_c2.txt一样,我想从文件名中获取数字 1。我的代码有什么问题。谢谢
只需删除正则表达式中不相关的部分,使用:
$file =~ m|b_(d+)|;
您可以组合以下行:
my ($number) = $file =~ /b_(d+)/;
正则表达式参考进一步理解 1, 2
my $str = "a_0_b_1_c2.txt";
print "", ($str=~m/_(d+)_([^_]*)$/g)[0];