[英]What's wrong with my Regex expression
我写了一个Regex
来检查字符串是否由9 digits
组成,如下所示,但这总是返回false
即使我的字符串为123456789
。
if (Regex.IsMatch(strSSN, " ^\\d{9}$"))
任何人都可以告诉我什么地方出了问题,也可以告诉我更好的方法是什么。我要实现的是,字符串应仅包含numeric data
,长度应为=9
空格在正则表达式中很重要(当然,在字符串开头之前不能匹配空格字符)。 删除它,一切都很好:
if (Regex.IsMatch(strSSN, "^\\d{9}$"))
另外,您通常希望对C#中的正则表达式使用逐字字符串,因此不必将反斜杠加倍,但这只是一种方便,而不是引起问题的原因:
if (Regex.IsMatch(strSSN, @"^\d{9}$"))
这应该工作
^\d{9}$
希望能有所帮助
您在"
和^
之间有一个空格,应该为:
if (Regex.IsMatch(strSSN, "^\\d{9}$"))
可能是模式开始处的空白吗? 这似乎很奇怪,在行的开头固定了一个空格,然后是一个数字。
这应该给您您想要的:
if (Regex.IsMatch(strSSN, "^\\d{9}$"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.