正则表达式:如何使范围匹配最小可能的长度?

时间:2016-01-21 17:15:01

标签: regex range quantifiers

正则表达式:[0-9]{6-8}([0-9]{4})

测试字符串:

sfad 123456781234 afd sadfa fdads
sfd 12345671234 24312 fasdfa dsfafd
221 1234561234 safd safd23 34

预期:

我需要在每一行的组中捕获结束部分1234

实际:没有匹配。 :(

我想让[0-9]{6-8}匹配尽可能少的字符,这样所有这3个字符串都匹配。我怎么做这个懒惰,因为它现在看起来很贪婪。

我只需要正则表达式解决方案,因为这是更大解决方案的一部分。这是一个可以使用它的链接:https://regex101.com/r/eF5pA9/1

1 个答案:

答案 0 :(得分:0)

带有[0-9]{6,8}([0-9]{4})修饰符的

g匹配所有三个。

感谢@anubhava和@Anderson Pimentel。