【问题标题】:regular expression to identify certain number pattern正则表达式来识别某些数字模式
【发布时间】:2018-03-08 23:16:16
【问题描述】:

我想建立一个正则表达式来识别某些数字模式

所需的表达式是:

1) 6个数字,以00开头

2) 6个数字,从01开始

3) 8 个数字,从 200 开始。

我从 ^\d{0,6}(.\d{00})?$ 开始,它不起作用

怎么做?

【问题讨论】:

  • 试试^(?:0[01]\d{4}|200\d{5})$
  • 或者你需要三个独立的正则表达式?
  • 您是否想过只提取任何 6 位或 8 位数字,然后用您的编程语言验证其余部分?并非所有事情都必须在正则表达式中完成

标签: regex


【解决方案1】:

试试这个:

^(0[01][0-9]{4}|200[0-9]{5})$

将匹配 0 后接 0 或 1 后接 4 个数字 0-9(共 6 位),或匹配 200 后接 5 位(共 8 位)

(使用字符组,由于没有指定语言,所以特殊字符是否需要额外的转义是未知的)

【讨论】:

  • 可以将[0-9]替换为\d得到数字字符类。
  • 我放[0-9] 的原因是让它与实现无关。 \d 可能需要额外的转义字符。
【解决方案2】:

我认为您正在寻找交替运算符|。它采用左边的模式或右边的模式。因此,您最终会得到以下正则表达式:

^(00\d{4}|01\d{4}|200\d{5})$

【讨论】:

    【解决方案3】:

    这个怎么样:一个以 200 和一个数字、00 或 01 和 4 个数字开头的数字

    (200\d|00|01)\d{4}
    

    【讨论】:

    • 需要200后跟5位数字或0001后跟4位数字。
    • @Zhaph-BenDuguid 是,检查正则表达式
    • 啊,是的,对不起,在中间错过了你的\d。请注意,目前这也将匹配部分字符串 - regexr.com/3ltp8
    猜你喜欢
    • 2018-09-30
    • 2022-01-04
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多