我是一个在c#中使用正则表达式的新手,我试图用它来验证这种格式的电话号码09oxoxxxxxx,其中x可以是任何数字,o可以只有1-9,而总长度应该是11个数字。我认为这可能是错误的。特定格式的正则表达式
if (Regex.IsMatch("09203041152", "^[0]{1}[9]{1}[1-9]{2}[1-9]{1}[0-9]{6}"))
我是一个在c#中使用正则表达式的新手,我试图用它来验证这种格式的电话号码09oxoxxxxxx,其中x可以是任何数字,o可以只有1-9,而总长度应该是11个数字。我认为这可能是错误的。特定格式的正则表达式
if (Regex.IsMatch("09203041152", "^[0]{1}[9]{1}[1-9]{2}[1-9]{1}[0-9]{6}"))
下面的正则表达式应该与你说 '09oxoxxxxxx'
^09[1-9][0-9][1-9][0-9]{6}$
感谢男人,像魅力一样工作 –
试试这个:
^09[1-9][0-9][1-9][0-9]{6}
您可以使用速记字符\d
这代表任何数量的[0-9]
:
Regex.IsMatch("09203041152", @"^09[1-9]\d[1-9]\d{6}$")
你的行话不工作,由于重复这里算{2}
:
^[0]{1}[9]{1}
[1-9] {2}[1-9]{1}[0-9]{6}
这就需要在一排两个非零数字。但是,你需要一个非零号码和一个任意数量的在这个地方:
^[0]{1}[9]{1}
[1-9] {1} [0-9] {1}[1-9]{1}[0-9]{6}
注 - 您不需要指定重复计数等于{1}
,因为这意味着单个标记的出现,这是真的,没有明确指定。
感谢您解释为什么它不工作。由于某种原因你的帖子不在这里,当我检查答案:\投票 –
@arashmoeen可能你没有刷新浏览器:) –
如果我已经添加了一些答案,我从来没有试图解释如何OP的代码是错误的,+1表示:)有时候最好的答案不是接受的答案。 –
你的正则表达式是稍微复杂一些,它必须是:
^09[1-9][0-9][1-9][0-9]{6}$
^
:比赛开始的行。09
:匹配数字0
后跟0
。[1-9]
:匹配1
和9
之间的任意数字。[0-9]
:匹配0
和9
之间的任意数字。[1-9]
:再次匹配1
和9
之间的任意数字。[0-9]{6}
:六次匹配0
和9
之间的任意数字。11
。对不起Udi是更快,但我投票给你解释结构,为我清除了很多东西。感谢一群 –
@arashmoeen是的,他是。不要担心,不用担心。 –
格式*不应该是11 *或*应该是11 *? –
对不起,错字,现在修复 –