【发布时间】:2019-05-29 20:16:52
【问题描述】:
是否有一个正则表达式允许如果数字以 1 开头,则长度为 10,如果数字开头不是 1,则长度为 9。
例子:
012345678(因为它以0开头,所以需要的长度是9)1234567890(因为它以1开头,所以需要的长度是10)
我尝试^[1][0-9]{8,9},但它只适用于b 条件。
我需要一个能满足这两个条件的正则表达式。
【问题讨论】:
是否有一个正则表达式允许如果数字以 1 开头,则长度为 10,如果数字开头不是 1,则长度为 9。
例子:
012345678(因为它以0开头,所以需要的长度是9)
1234567890(因为它以1开头,所以需要的长度是10)
我尝试^[1][0-9]{8,9},但它只适用于b 条件。
我需要一个能满足这两个条件的正则表达式。
【问题讨论】:
^[1][0-9]{8,9} 模式只匹配以1 开头然后有 8 或 9 位数字的字符串,但可以以这些模式之后的任何文本结尾。
你可以使用
^(?:1[0-9]{9}|[02-9][0-9]{8})$
详情
^ - 字符串开头(?: - non-capturing group 的开始:
1 - 1 数字[0-9]{9} - 任意九个 ASCII 数字| - 或
[02-9] - 除1 以外的任何 ASCII 数字
[0-9]{8} - 任意八个 ASCII 数字) - 小组结束$ - 字符串结束。【讨论】: