/ /私の正規表現の何が問題なのか-C#、正規表現

私のRegex式で何が問題なのですか? - c#、regex

私は書かれた Regex 文字列が 9 digits または次のようにではなく、これは常に私を返します false 私の文字列が 123456789.

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

誰もが何が間違っているのか、そしてより良いものが私に提供するかどうかを伝えることができます..私が達成しているのは、文字列が numeric data そして長さは =9

回答:

回答№1は5

正規表現ではスペースが重要です(そしてもちろん、スペース文字に一致することはできません 文字列の先頭)。それを削除すると、すべてがうまくいくはずです:

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

また、通常、C#の正規表現に逐語的な文字列を使用するため、バックスラッシュを2倍にする必要はありませんが、これは単なる問題であり、問​​題の理由ではありません。

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

回答№2の場合は0

これはうまくいくはず

^d{9}$

助けてくれる希望


回答№3の場合は0

間に空白があります " そして ^。そのはず:

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

回答№4の場合は0

それはあなたのパターンの始まりのスペースでしょうか?それは奇妙で、行の先頭にスペースと数字が固定されているようです。

これはあなたが欲しいものをあなたに与えるでしょう:

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