最多匹配一个数字

ker*_*nic 2 regex perl

我在Perl中有以下正则表达式,用于匹配其中包含6位或更少位数的字符串.但是,这也匹配超过6位的字符串.

$string =~ /[0-9]{1,6}/

火柴:

  1. T12345#1
  2. 0897
  3. 112355501234

我希望正则表达式匹配前2但不是最后一种情况.

Dan*_*nez 7

使用否定的前瞻以查看是否跟随数字,并且否定后面的后面因此您不仅仅匹配最后六位数字:

$string =~ /(?<!\d)\d{1,6}(?!\d)/
Run Code Online (Sandbox Code Playgroud)