电话号码正则表达式

时间:2011-09-19 01:54:38

标签: regex

我正在审核应用程序和记录的c#代码。在浏览代码时,我看到了美国电话号码的一个不寻常的正则表达式。正则表达式在

之下
 @"^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$";

上述电话号码的结论如01(29).123.4567或01-38-111-1111。

我正确地解释了吗?任何对正则表达式的见解都受到高度赞赏。上述正则表达式的示例将帮助我了解有关正则表达式的更多信息。

4 个答案:

答案 0 :(得分:11)

从左到右阅读...

  • ^[01]?可能可能01开头。
  • [- .]?可以可能跟随-空间.
  • (([2-9]\d{2})|[2-9]\d{2}) 必须29之间的数字开头,然后跟随任意两位数字。 (奇怪地重复了两次,捕获组应该总是包含相同的部分,很奇怪)。这可能意味着逃脱括号,这将更有意义。通常,您使用\字符来逃避。
  • [- .]?可以可能跟随-空间.
  • \d{3} 必须后跟任意三位数。
  • [- .]?可以可能跟随-空间.
  • \d{4}$ 必须以任意四位数跟随(并结束)。

答案 1 :(得分:0)

^ [01]? = 0或1或没有

[ - ]? = - 或。或什么

(([2-9] \ d {2})=第一个数字2或更大,后跟2个数字,可以是任意数字b / w 0到9 ..表示012或112都可以正常工作

| =或签名

[2-9] \ d {2})=第一个数字b / w 2和9后跟2个数字b / w 0-9

[ - ]? =手段 - 或。或什么

\ d {4} =任意四个数字b / w 0-9

$ =确保正则表达式以$符号前面的内容结束。 ^与$做同样的事情,但它只检查正则表达式的开头。

答案 2 :(得分:0)

^\d{2}-\d{3,15}$

这将有助于手机号码从3 t0到15位数字的变化。

例如:91-xxxxxxxxxxxxxxx

以上x的范围是3到15位数字 [RegularExpression(@"^\d{2}-\d{3,15}$“,ErrorMessage =”无效的电话号码“)]

答案 3 :(得分:0)

List<Employe> listEmploye = new ArrayList<>();
for(int i=0; i< ids.size();i++)
{
  Long idLong = Long.valueOf(ids.get(i));
  BigDecimal idBig= BigDecimal.valueOf(idLong);
  listEmploye.add(findByIdPointage(idBig));
}

它将采用91-xxxxxxxxxx形式的数字
x是10到15个数字,范围为