我写了Regex
以检查字符串是否由9 digits
组成,如下所示,但即使我的字符串为false
,也总是返回123456789
}。
if (Regex.IsMatch(strSSN, " ^\\d{9}$"))
任何人都可以告诉我什么是错的,如果有更好的人提供我的话......我实现的是字符串应该只有numeric data
而长度应该是=9
答案 0 :(得分:5)
空格在正则表达式中很重要(当然,在字符串的开头之前,您无法匹配空格字符)。删除它,一切都应该没问题:
if (Regex.IsMatch(strSSN, "^\\d{9}$"))
此外,您通常希望在C#中使用逐字符串作为正则表达式,因此您不必将反斜杠加倍,但这只是一个方便,而不是您的问题的原因:
if (Regex.IsMatch(strSSN, @"^\d{9}$"))
答案 1 :(得分:0)
这应该有效
^\d{9}$
希望有所帮助
答案 2 :(得分:0)
"
和^
之间有一个空格。它应该是:
if (Regex.IsMatch(strSSN, "^\\d{9}$"))
答案 3 :(得分:0)
它可能是你模式开头的空间吗?这似乎很奇怪,一个空间而不是一个固定在线的开头的数字。
这可以给你你想要的东西:
if (Regex.IsMatch(strSSN, "^\\d{9}$"))