gpt4 book ai didi

javascript - 用于将数字与两个和三个编号模式一起匹配的正则表达式

转载 作者:行者123 更新时间:2023-12-05 00:28:33 25 4
gpt4 key购买 nike

我有一个由 5 个数字组成的数组,只要有 ,我想匹配三 同号两个 相同的不同号码在数组中,放置无关紧要。数字序列可以是 1 - 5 之间的 5 个数字的任意随机字符串。
匹配示例如下:3332224422522254411154545*基本上任何2个和3个相同数字的分组都需要匹配。
到目前为止我想出的最好的:^([0-9])\1{2}|([0-9])\1{1}$我对正则表达式不太好,任何帮助将不胜感激。

最佳答案

您可以使用

^(?=[1-5]{5}$)(?=.*(\d)(?:.*\1){2})(?=.*(?!\1)(\d).*\2)\d+$
^(?=.*(\d)(?:.*\1){2})(?=.*(?!\1)(\d).*\2)[1-5]{5}$
regex demo .
如果要允许任何数字,请替换 [1-5]\d .
细节:
  • ^ - 字符串开头
  • (?=[1-5]{5}$) - 1 中必须有五位数字至5直到字符串结尾(这种前瞻使不匹配的字符串更快地失败)
  • (?=.*(\d)(?:.*\1){2}) - 一个正向前瞻,需要尽可能多的任何零个或多个字符,后跟一个数字(捕获到第 1 组),然后是两个尽可能多的任意零个或多个字符的序列,并且立即捕获到第 1 组中的相同数字当前位置右侧
  • (?=.*(?!\1)(\d).*\2) - 一个正向前瞻,它需要尽可能多的零个或多个字符,后跟一个不等于第 1 组中的数字的数字(捕获到第 2 组),然后是尽可能多的任何零个或多个字符,并且与捕获到当前位置右侧的第 2 组相同的数字
  • \d+ - 一位或多位数字
  • $ - 字符串结束。
  • 关于javascript - 用于将数字与两个和三个编号模式一起匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70735094/

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