web-dev-qa-db-ja.com

特殊文字を含まない10桁の数値の正規表現

10桁の数値(特殊文字および小数なし)の正規表現とは何ですか。

30
Grasshopper

この正規表現を使用して、10桁のみを照合します。

@"^\d{10}$"

文字列内の任意の場所で連続する10桁の数字を見つけるには、次を使用します。

@"\d{10}"

これにより、11桁の数字の最初の10桁も検索されることに注意してください。 exactly10桁以上の文字列の任意の場所を検索するには、負の lookarounds を使用できます。

@"(?<!\d)\d{10}(?!\d)"
75
Mark Byers

次のパターンを使用します。

^\d{10}$
6
A_Nabelsi
\d{10}

私はそれがそれをすべきだと信じています

4
m.edmondson

実装方法の例:

public bool ValidateSocialSecNumber(string socialSecNumber)
{
    //Accepts only 10 digits, no more no less. (Like Mike's answer)
    Regex pattern = new Regex(@"(?<!\d)\d{10}(?!\d)");

    if(pattern.isMatch(socialSecNumber))
    {
        //Do something
        return true;
    }
    else
    {
        return false;
    }
}

また、別の方法で行うこともできます。 Matchを使用してから、パターンマッチングの周りにtry-catchブロックをラップします。ただし、間違った入力が頻繁に行われる場合、例外をスローするのは非常にコストがかかります。したがって、少なくとも単純なケースでは、上記の方法を好みます。

3
DSF

これを使って:

\d{10}

役に立てば幸いです。

3
dzendras