gpt4 book ai didi

regex - 验证字符串 # 后跟数字但 # 每次出现后都会增加

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

我有一个看起来像这样的字符串

#123##1234###2356####69
#开头,后跟任意数字,每次出现 ##的个数增加,第一次1,第二次2,以此类推。
它类似于这个正则表达式,但由于我不知道这种模式持续了多长时间,所以它不是很有用。
^#\d+##\d+###\d+$
我正在使用 PCRE 正则表达式引擎,它允许递归 (?R) 和条件 (?(1)...) 等。
是否有正则表达式来验证此模式?
有效的
  • #123
  • #12##235
  • #1234##12###368
  • #1234##12###368####22235#####723356

  • 无效的
  • ##123
  • #123###456
  • #123##456##789

  • 我试过 ^(?(1)(?|(#\1)|(#))\d+)+$ 但它似乎根本不起作用

    最佳答案

    您可以使用 PCRE conditional sub-pattern matching 执行此操作:

    ^(?:((?(1)\1)#)\d+)++$
    RegEx Demo
    正则表达式详情:
  • ^ : 开始
  • (?: : 启动非捕获组
  • ( :开始捕获组#1
  • (?(1)\1) :if/then/else指令表示匹配反向引用 \1仅当第一个捕获组可用时才匹配 null
  • # : 匹配一个额外的 #

  • ) : 结束捕获组 #1
  • \d+ : 匹配 1+ 个数字

  • )++ : 结束非捕获组。匹配此非捕获组的 1+。
  • $ : 完
  • 关于regex - 验证字符串 # 后跟数字但 # 每次出现后都会增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66596578/

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