我写了一个Regex
来检查字符串是否由9 digits
组成,如下所示,但总是返回false
即使我的字符串为123456789
。我的正则表达式有什么问题
if (Regex.IsMatch(strSSN, " ^\\d{9}$"))
任何一个可以告诉什么是错的,也若有更好的提供我..我所实现的是字符串应该只有numeric data
和长度应=9
我写了一个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}$"))
谢谢'蒂姆Pietzcker' – Dotnet
+1了很好的解释。 – Fischermaen