我寫了一個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