如何捕获Perl中字符串末尾的数字组?

JPe*_*ter 3 regex perl capture

我正在尝试捕获正则表达式组中此行中的最后一位数字:

输入:

9 Power_On_Hours          0x0032   099   099   000    Old_age   Always       -       54654

我的模式:

/Power_On_Hours.+Always\s.+([0-9]{1,5})/
Run Code Online (Sandbox Code Playgroud)

我似乎无法让它捕获"54654",它返回undef :(

fri*_*edo 9

实际上,捕获组应该抓住'4',而不是取消.你的决赛.+将吃掉所有东西直到最后一位数,然后将其捕获到$1.此修订版捕获所有数字$1:

/Power_On_Hours.+Always\s.+?(\d{1,5})/
Run Code Online (Sandbox Code Playgroud)

?使得.+非贪婪的,所以它会匹配字符最多时数字(\d)开始匹配.