代码之家  ›  专栏  ›  技术社区  ›  Leo

正则表达式中字符的最小长度

  •  1
  • Leo  · 技术社区  · 8 年前

    我有以下正则表达式: ^([0-9]{1,4}(\ -?)){3}[0-9]{1,4}$

    事实上,它是匹配的 1234

    我想强制匹配6个或更多数字(即不包括破折号),例如123412或12123或11231或1-12-12-2222或1-12322等。

    有没有一个简单的方法来实现这一点?

    1 回复  |  直到 8 年前
        1
  •  1
  •   anubhava    8 年前

    您可以将此regex与lookahead一起使用,以断言存在至少6位数字:

    /^(?=(?:\D*\d){6})(?:\d{1,4}[ -]?){3}\d{1,4}$/gm
    

    RegEx Demo

    在这里 (?=(?:\D*\d){6}) 是一个正向展望,当至少有6个数字存在,且其中有0个或多个非数字时断言为真。