我正在尝试仅访问用户输入的一部分。例如。如果用户输入的文件名为/file/path/test_324_3422.jpg
我只想测试324和3422
我一直在尝试这样做,但是它不起作用:
#!/usr/bin/perl
if(@ARGV != 1){
print "Error\n";
}
else{
my $input = $ARGV[0];
$input =~ /(.)_([\d]+)_([\d]+)/
print $1, "\n";
}
.
捕获组内的点仅与单个字符匹配。
而且您只打印$1
与第一个捕获组匹配的对象。您也需要$2
并且$3
也要显示这些捕获组的匹配项。
my $input =~ /([a-zA-Z]+)_(\d+)_(\d+)/;
print join(', ', $1, $2, $3), "\n";
如果那不适合您的需求,请为第一个捕获组使用否定的匹配项。
my $input =~ /([^\/_]+)_(\d+)_(\d+)/;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句