Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 红外手机号码的正则表达式_C#_Regex - Fatal编程技术网

C# 红外手机号码的正则表达式

C# 红外手机号码的正则表达式,c#,regex,C#,Regex,我将使用正则表达式验证IR手机号码,但它不匹配!例如“09126104851”。 有什么问题 "^09[123456789]{2}(^0[123456789]{1}[0-9]{6}|[123456789]{1}[0-9]{7})$" 请改用此正则表达式:“^09\d{9}$” 例如: System.Text.RegularExpressions.Regex.IsMatch("09126104851", @"^09\d{9}$") 检查小提琴:< P>因为正则表达式的中间有 ^ < /代码>符

我将使用正则表达式验证IR手机号码,但它不匹配!例如“09126104851”。 有什么问题

"^09[123456789]{2}(^0[123456789]{1}[0-9]{6}|[123456789]{1}[0-9]{7})$"

请改用此正则表达式:
“^09\d{9}$”

例如:

System.Text.RegularExpressions.Regex.IsMatch("09126104851", @"^09\d{9}$")

检查小提琴:

< P>因为正则表达式的中间有<代码> ^ < /代码>符号。
^
表示“在字符串的开头”。
您需要@msd:
^09\d{9}$

中的正则表达式,您的表达式等价于:

^09[1-9]{2}(^0[1-9]{1}[0-9]{6}|[1-9]{1}[0-9]{7})$
也可以写得更短,如:

^09[1-9]{2}(^0[1-9]{1}\d{6}|[1-9]{1}\d{7})$

现在你中间的错误是<代码> ^ 0 < /代码>。可能您想要

[^0]
(所有内容都不是零):

但最大的问题是这一部分:

  • 09[1-9]{2}
    共匹配4位数字
  • [^0][1-9]{1}\d{6}
    共匹配8位数字
  • [1-9]{1}\d{7}
    总共匹配8位数字
所以,您试图匹配8+4=12位,而电话号码有11位

我打赌你想表达的是:

^09[1-9]{2}([1-9]{1}\d{6}|[1-9]{1}\d{6})$
现在您将注意到,
|
前后的交替匹配是 相同的!这使得表达式变得更小:

^09[1-9]{2}([1-9]{1}\d{6})$
如果我们可以忽略最后7位的分组,我们将注意到类似的部分:
[1-9]{2}
[1-9]{1}
。这样可以进一步减少表达式:

^09[1-9]{3}\d{6}$

为什么你有<代码> ^ ,字符串的开始,在正则表达式的开头和中间?那会怎样匹配呢?
^09[1-9]{3}\d{6}$