C# 仅接受9位数字、无特殊字符的正则表达式可能具有前导零';只有2个

C# 仅接受9位数字、无特殊字符的正则表达式可能具有前导零';只有2个,c#,regex,C#,Regex,嗨,我需要一个正则表达式,它应该只接受9个字符,这些字符只能是0-9之间的数字,但不应该包含所有的零,不应该包含特殊字符,可以从零开始,前导零必须最多只能是2。 正则表达式应接受以下模式 123456789 012345678 001234567 现在我有了^[1-9][0-9]{8}$这个正则表达式,它接受9位数字,没有特殊字符,并且不应该以零开头。您可以使用前瞻检查前导零必须最多为2(并且不应该在同一步中包含所有零),如 (?!0{3})放弃任何以3个零开始的数字 [0-9]{9}匹配任

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

123456789
012345678
001234567

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

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

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

如果RE没有前瞻性,只需使用所有标准从头开始构建表达式:

^(0[1-9]{8}|00[1-9]{7}|[1-9][0-9]{8})$
同样,根据您的引擎,您可能需要退出管道和一些括号:)

由于正则表达式没有完全标准化,因此带有此标记的所有问题还应包括指定适用编程语言或工具的标记。-你用哪种语言?
^(0[1-9]{8}|00[1-9]{7}|[1-9][0-9]{8})$