gpt4 book ai didi

Javascript RegEx - 强制执行两个最大长度

转载 作者:行者123 更新时间:2023-12-03 10:32:06 24 4
gpt4 key购买 nike

我已经有一段时间在解决这个问题了。希望你能给我一些指示。

我想要实现的是,字符串应该包含完全 4 个“-”和任意顺序的 10 个数字。

我创建了这个正则表达式:^(-\d-){10}$它确实强制数字的最大长度为 10,但我没有找到一种方法来实现 '-' 的最大长度为 4

谢谢

最佳答案

好的,这是一个模式:

^(?=(?:\d*?-){4}\d*$)(?=(?:-*?\d){10}-*$).{14}$

Demo

说明:

  • 主要部分是 ^.{14}$,它只是检查字符串中有 14 个字符。

  • 然后,开始时有两个前瞻:

    • (?=(?:\d*?-){4}\d*$)
    • (?=(?:-*?\d){10}-*$)

    第一个检查连字符,第二个检查数字并确保计数正确。两者都匹配整个输入字符串并且非常相似,所以我们只看第一个。

    • (?:\d*?-){4} 匹配任意数量的数字(或无),后跟连字符,四次。这场比赛之后,我们知道有四个连字符。 (我使用了一个不贪婪的量词(*?)只是为了防止无用的回溯,作为一种优化)
    • \d*$ 只是确保字符串的其余部分仅由数字组成。

关于Javascript RegEx - 强制执行两个最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29162322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com