带有特殊字符的文件名中的 Grep 编号



我有一个文件名包含很多'_',我想取_之间的数字。下面是我的代码尝试获取数字。

$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];

最新更新