gpt4 book ai didi

regex - 如何匹配任何两个不为零的数字的正则表达式?

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

示例 :

01  =  match
10 = match
99 = match
00 = no match

到目前为止,我有这个: /^ [1-9][0-9] | [0-9][1-9] $/ 但我觉得它可以优化。

最佳答案

您可以使用负前瞻来限制通用 [0-9]{2} 模式:

^(?!00)[0-9]{2}$

查看 regex demo
[0-9]{2} 将精确匹配 2 位数字。 (?!00) negative lookahead 将在字符串的开头执行一次,并确保在字符串结束之前没有 00。如果字符串等于 00 ,则不会找到匹配项。

How Negative Lookahead Works 上查看更多信息。

详细的模式解释:
  • ^ - 字符串
  • 的开始
  • (?!00) - 如果在当前位置之后(在字符串的开头)有两个 0 ,则匹配失败的负前瞻。由于下一个子模式 - [0-9]{2}$ - 只允许字符串中有 2 个符号,所以我们不必在前瞻中添加任何 anchor ,在其他情况下,必须添加 $ 以排除 00 匹配。
  • [0-9]{2} - 正好两个(由于限制量词 {min(,max)?} )数字(在大多数风格中, [0-9] 可以替换为 \d ,但在某些风格中 \d 也可以比常规 [0123456789] 匹配更多)
  • $ - 字符串的结尾(取决于正则表达式的风格,\z 可能更可取,因为它匹配字符串的最末尾)。
  • 关于regex - 如何匹配任何两个不为零的数字的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36426713/

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