gpt4 book ai didi

正则表达式,用于恰好 7 位数字和 2 个连字符的排列,没有 2 个连续的连字符

转载 作者:行者123 更新时间:2023-12-01 23:33:34 25 4
gpt4 key购买 nike

我正在寻找一个正则表达式来匹配一个字符串,它应该:

  • 以数字开头
  • 'in-between' 有 7 位数字和 2 个连字符的排列,没有 2 个连续的连字符
  • 以一系列数字、连字符、数字结尾

匹配:

  • 01-234-5678-9
  • 01234-56-78-9
  • 0123-4-5678-9
  • 012-345-678-9
  • 01-234567-8-9
  • 01-234-5678-9
  • 0-12345-678-9
  • 0-123-45678-9
  • 0-123-45678-9
  • 01-23456-78-9
  • 0-123456-78-9
  • 0-1234567-8-9

没有匹配:

  • 01-234-56789-0
  • 01-234-567-8
  • 01--2345678-9
  • 01-2345678--9
  • 0-1-23456789
  • -01-2345678-9

目前,我不太明白如何匹配 2 个“中间”连字符:^\d\d{7}\d-\d$

编辑:多亏了我对这个问题的回答,我才能够将其扩展到关于 ISBN-10 和 ISBN-13 的其他 question...

最佳答案

您可以断言 7 位数字和末尾的 digit - digit 部分。

对于匹配,连字符前后至少应有一个数字,以防止出现连续的连字符。

^\d(?=(?:-?\d){7}-?\d-\d$)\d*-\d+-\d*\d-\d$

  • ^ 字符串开始
  • \d 匹配单个数字
  • (?= 正面前瞻
    • (?:-?\d){7} 匹配由可选 - 分隔的 7 位数字
    • -?\d-\d$ 匹配一个可选的-和末尾的\d-\d$
  • ) 关闭前瞻
  • \d*-\d+-\d*\d-\d 匹配所有连字符至少由一个数字分隔的可能格式
  • $ 字符串结束

Regex demo

关于正则表达式,用于恰好 7 位数字和 2 个连字符的排列,没有 2 个连续的连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65922591/

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