我在 Perl 中有以下正则表达式,用于匹配其中包含 6 个或更少数字的字符串。但是,这也匹配超过 6 位数字的字符串。
$string =~/[0-9]{1,6}/
匹配:
- T12345#1
- 0897
- 112355501234
我希望正则表达式匹配前两个而不是最后一个。
最佳答案
使用否定前瞻来查看后面是否有数字,并使用否定后视,这样您就不会只匹配最后六位数字:
$string =~ /(?<!\d)\d{1,6}(?!\d)/
关于regex - 匹配一个数字最多次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36695708/