Регулярное выражение для сопоставления с чем угодно, кроме двоичных чисел в C #?

#c# #regex

#c# #регулярное выражение #двоичный

Вопрос:

Я хочу проверить, содержит ли строка только 0s и 1s , и ничего больше. Если оно включает в себя что-либо еще, кроме 0 и 1 , я хочу это перехватить. Даже если одиночный символ отличается от 0 или 1 .

Я написал следующее регулярное выражение, но, похоже, оно ничего не улавливает.

 private static int bin(string binaryNumber) {

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

    // rest removed for brevity
}
  

Есть идеи?

Комментарии:

1. 6.3. Двоичные числа . Смотрите также regex101.com/r/xo4xmQ/1

Ответ №1:

Попробуйте это

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

Ответ №2:

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

Ответ №3:

Вместо этого попробуйте инвертировать его.

Проверьте, НЕ соответствует ли binaryNumber регулярному выражению только для двоичных чисел.

 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
}
  

Ответ №4:

Попробуйте

 ^[01]*$
  

Принимает любое количество цифр, включая ни одной.

или

 ^[01] $
  

Принимает одну или несколько цифр.