gpt4 book ai didi

regex - JavaScript 正则表达式中多个正向前瞻的语法

转载 作者:行者123 更新时间:2023-12-04 13:49:58 25 4
gpt4 key购买 nike

我试图在一个正则表达式中包含两个积极的前瞻。这是我正在处理的问题作为示例。

(?=[a-zA-Z])(?=[0-9])[a-zA-Z0-9]{0,20}

这就是我想要匹配的内容:
  • 0-20 个字符
  • 任何地方的一封或多封信
  • 任何地方的一个或多个号码
  • 只允许使用字母和数字

  • 当我只用一个前瞻来做这件事时,它可以工作,但是一旦我添加另一个,它就会中断。两个前瞻的正确语法是什么?

    最佳答案

    前瞻 就像流浪!您首先限制了无法满足要求的外观领域。您可以使用贪心点 .* (或懒惰的 .*? )正则表达式允许先行查找每个需求。

    正如@AlexR 在评论中提到的,我稍微修改了 RegEx:

    ^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9_]{0,20}$

    顺便说一句,您忘记了匹配的下划线,这是我添加的。

    以上几乎等于:
    ^(?=[^a-zA-Z]*[a-zA-Z])(?=\D*\d)\w{1,20}$

    关于regex - JavaScript 正则表达式中多个正向前瞻的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26129294/

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