如何编写正则表达式

时间:2012-03-24 15:02:37

标签: c#

我需要编写一个正则表达式,该表达式对于电话号码是正确的,并带有一些规则:

1) max length 13 symbols
2) it should start from '+'
3) it should contain sonly numbers [0-9]

所以,例如,它应该是这样的:

+447289347598342745

1 个答案:

答案 0 :(得分:2)

Regex re = new Regex(@"^\+\d{1,13}$");
  • ^\+→字符串必须以+开头。请注意,+必须为escaped,因为它具有特殊含义。
  • \d→相当于角色类[0-9]
  • {1,13}→必须至少有一个且不超过13个数字字符出现

  

在.NET中,您应该使用[0-9]而不是\d,否则您应该指定RegexOptions.ECMAScript。否则,正则表达式将匹配像+୧٢३੪૫这样的字符串(在各种脚本中包含Unicode数字1-5)。 - Michael Liu

所以要么使用:

Regex re = new Regex(@"^\+[0-9]{1,13}$");
// or
Regex re = new Regex(@"^\+\d{1,13}$", RegexOptions.ECMAScript);