2016-10-18 2 views
3

文字列に0s1sしか含まれていないかどうかを確認したい。 01以外のものが含まれている場合、私はそれをキャッチしたいと思います。 1文字が0または1以外のものであっても。C#のバイナリ番号以外のものと一致する正規表現ですか?

私は以下の正規表現を書いていますが、何も捕まえていないようです。

private static int bin(string binaryNumber) { 

    Regex rgx = new Regex(@"^[a-zA-Z2-9\p{P}\p{S}\s,]*$"); 
    if (rgx.IsMatch(binaryNumber)) { 
     Console.WriteLine("Binary number should include only 0 and 1"); 
    } 

    // rest removed for brevity 
} 

+2

[6.3。 2進数](https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9781449327453/ch06s03.html)を参照してください。 https://regex101.com/r/xo4xmQ/1も参照してください –

答えて

3

^[01]*$ 

何も含まない数字の任意の数を、受け入れてみてください。この

Regex rgx = new Regex(@"[^01]+$"); 
+0

ありがとうございますこれは魅力のように動作します! – typos

+0

素晴らしい、あなたは大歓迎です – Mostafiz

1
Regex rgx = new Regex(@"^[01]+$"); 
1

それよりむしろ反転してみてください。

binaryNumberが2進数の場合のみRegexと一致しないかどうかを確認します。

private static int bin(string binaryNumber) { 

    Regex rgx = new Regex(@"^[01]+$"); 
    if (!rgx.IsMatch(binaryNumber)) { 
    Console.WriteLine("Binary number should include only 0 and 1"); 
    } 

    // rest removed for brevity 
} 
0

を試してみてください。

または

^[01]+$ 

1桁以上の数字を受け入れます。

関連する問題