2011-11-25 48 views
0

我寫了一個Regex來檢查字符串是否由9 digits組成,如下所示,但總是返回false即使我的字符串爲123456789我的正則表達式有什麼問題

if (Regex.IsMatch(strSSN, " ^\\d{9}$")) 

任何一個可以告訴什麼是錯的,也若有更好的提供我..我所實現的是字符串應該只有numeric data和長度應=9

回答

5

空間上的正則表達式是顯著(當然,你不能匹配空格字符之前字符串的開始)。刪除它,一切都應該罰款:

if (Regex.IsMatch(strSSN, "^\\d{9}$")) 

此外,你一般要使用逐字字符串在C#中的正則表達式,所以你不必雙倍的反斜槓,但是這僅僅是爲了方便,而不是原因您的問題:

if (Regex.IsMatch(strSSN, @"^\d{9}$")) 
+0

謝謝'蒂姆Pietzcker' – Dotnet

+0

+1了很好的解釋。 – Fischermaen

0

這應該工作

^\d{9}$ 

希望幫助

0

您在"^之間有空格。它應該是:

if (Regex.IsMatch(strSSN, "^\\d{9}$")) 
0

它可能是在你的模式開始的空間?這看起來很奇怪,一個空格,然後是一個數字錨定到該行的開頭。

這應該給你想要的東西:

if (Regex.IsMatch(strSSN, "^\\d{9}$")) 
相關問題