我有这个文本$line = "config.txt.1"
,我想将它与正则表达式匹配并提取它的数字部分。我正在使用两个版本:
$line = "config.txt.1";
(my $result) = $line =~ /(\d*).*/; #ver 1, matched, but returns nothing
(my $result) = $line =~ /(\d).*/; #ver 2, matched, returns 1
(my $result) = $line =~ /(\d+).*/; #ver 3, matched, returns 1
我认为这*
有点搞砸了,我一直在看这个,但仍然没有正则表达式引擎中的贪婪机制。如果我从正则表达式的左侧开始,并且文本中可能没有数字,那么对于版本 1,它也会匹配。但是对于版本 3,它将不匹配。有人可以解释一下为什么会这样以及我应该如何写我想要的东西吗?(可能带有数字,不一定是单个数字)
编辑
要求:可能带有数字,不一定是单个数字,并且匹配不能捕获任何内容,但不应失败
输出必须如下(对于上面的示例):
config.txt
1