创建正则表达式电话号码验证除一种格式之外的所有号码

时间:2015-05-23 10:41:50

标签: c# regex

我有一个正则表达式,授权所有电话号码格式为:

0nxxxxxxxx with n between 1-9 and 8 times x between 0-9

我的正则表达式是

0[1-9][0-9]{8}

现在,我想排除以0590xxxxxx开头的号码。 所以,例如

0123456789 => true
...        => true
0590123456 => false

如何修改我的正则表达式呢?

1 个答案:

答案 0 :(得分:1)

只需在模式前添加否定前瞻(?!0590)

(?!0590)0[1-9][0-9]{8}

请参阅RegexStorm Demo

改进:

  • 如果您想避免使用^等匹配或使用字词边界$
  • ,建议您使用开始abc0123456789abc和结束\b锚点
  • 您可以将[0-9]替换为\d

改进的正则表达式:

^(?!0590)0[1-9]\d{8}$