首页 > 解决方案 > 数字范围的正则表达式

问题描述

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

例子:

我尝试 ^[1][0-9]{8,9}过,但它只适用于这种b情况。

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

标签: c#htmlregex

解决方案


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

您可以使用

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

查看正则表达式演示

细节

  • ^- 字符串的开始
  • (?:-非捕获组的开始:
    • 1-1数字
    • [0-9]{9}- 任意九个 ASCII 数字
  • |- 或者
    • [02-9]- 除了任何 ASCII 数字1
    • [0-9]{8} - 任何八个 ASCII 数字
  • )- 小组结束
  • $ - 字符串结束。

推荐阅读