正则表达式只接受9位数字,没有特殊字符,可能只有前导零,最多2位

时间:2017-03-09 08:18:24

标签: c# regex

嗨我需要一个正则表达式,它应该只接受9个字符,只接受0-9中的数字,但不应包含所有零,不应包含特殊字符,可以从0开始,前导零必须最多2个。 正则表达式应该接受以下模式

123456789
012345678
001234567

现在我有^[1-9][0-9]{8}$这个正则表达式接受9位数字,没有特殊字符,不应该从零开始。

2 个答案:

答案 0 :(得分:3)

您可以使用前瞻来检查前导零必须最多2个(并且不应该在同一步骤中包含所有零),例如

^(?!0{3})[0-9]{9}$
  • (?!0{3})弃掉以3个零开头的任何数字
  • [0-9]{9}匹配任何其他9位数字

答案 1 :(得分:0)

如果RE没有预见,那么只需使用您的所有条件从头开始构建表达式:

^(0[1-9]{8}|00[1-9]{7}|[1-9][0-9]{8})$

同样,根据您的引擎,您可能需要转移管道和一些括号:)