#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] $
Принимает одну или несколько цифр.