【问题标题】:Regex for numeric numbers range数字范围的正则表达式
【发布时间】:2019-05-29 20:16:52
【问题描述】:

是否有一个正则表达式允许如果数字以 1 开头,则长度为 10,如果数字开头不是 1,则长度为 9。

例子:

  • 012345678(因为它以0开头,所以需要的长度是9)

  • 1234567890(因为它以1开头,所以需要的长度是10)

我尝试^[1][0-9]{8,9},但它只适用于b 条件。

我需要一个能满足这两个条件的正则表达式。

【问题讨论】:

    标签: c# html regex


    【解决方案1】:

    ^[1][0-9]{8,9} 模式只匹配以1 开头然后有 8 或 9 位数字的字符串,但可以以这些模式之后的任何文本结尾。

    你可以使用

    ^(?:1[0-9]{9}|[02-9][0-9]{8})$
    

    regex demo

    详情

    • ^ - 字符串开头
    • (?: - non-capturing group 的开始:
      • 1 - 1 数字
      • [0-9]{9} - 任意九个 ASCII 数字
    • | - 或
      • [02-9] - 除1 以外的任何 ASCII 数字
      • [0-9]{8} - 任意八个 ASCII 数字
    • ) - 小组结束
    • $ - 字符串结束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多