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

Posted

技术标签:

【中文标题】正则表达式:如何使范围匹配最小可能长度?【英文标题】:Regex: How to make range to match minimum possible length? 【发布时间】:2016-01-21 17:15:01 【问题描述】:

正则表达式:[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 匹配尽可能少的字符,以便所有这三个字符串都匹配。我如何让它变得懒惰,因为它现在似乎很贪婪。

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

【问题讨论】:

你可以使用[0-9]6,8([0-9]4) 如果您想获得多个匹配项(如果有),请记住添加 g 修饰符:regex101.com/r/eF5pA9/2 【参考方案1】:

[0-9]6,8([0-9]4)g 修饰符匹配所有三个。

感谢@anubhava 和@Anderson Pimentel。

【讨论】:

以上是关于正则表达式:如何使范围匹配最小可能长度?的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式匹配具有不同数字和最小长度的数字

正则表达式:最小可能匹配或非贪婪匹配

如果仅重复一组符号,如何使正则表达式匹配?

java 正则表达式 如何匹配固定长度的数字

Js正则表达式的如何写这样一个匹配规则!1) 取指定范围的内容 2)过滤指定范围的内容

正则表达式