Regex для чисел только

Я не использовал регулярные выражения вообще, таким образом, я испытываю затруднения при поиске и устранении неисправностей. Я хочу, чтобы regex соответствовал только, когда содержавшая строка является всеми числами; но с этими двумя примерами ниже его соответствует строке, которая содержит все числа плюс, равняется знаку как "1234=4321". Я уверен, что существует способ изменить это поведение, но поскольку я сказал, я действительно никогда не делал многого с регулярными выражениями.

string compare = "1234=4321";
Regex regex = new Regex(@"[\d]");

if (regex.IsMatch(compare))
{ 
    //true
}

regex = new Regex("[0-9]");

if (regex.IsMatch(compare))
{ 
    //true
}

В случае, если это имеет значение, я использую C# и.NET2.0.

287
задан Nicolás Alarcón Rapela 15 September 2019 в 08:31
поделиться

4 ответа

Используйте привязки к концу и начало.

Regex regex = new Regex(@"^\d$");

Использование "^\d+$", если необходимо соответствовать больше чем одной цифре.

<час>

Примечание, что "\d" будет соответствовать [0-9] и другие символы цифры как Восточные Арабские цифры ٠١٢٣٤٥٦٧٨٩. Используйте "^[0-9]+$" для ограничения соответствий только Арабскими цифрами 0 - 9.

<час>

, Если необходимо включать какие-либо числовые представления кроме просто цифр (как десятичные значения для начинающих), затем см. подробное руководство @tchrist по парсингу чисел с регулярными выражениями .

455
ответ дан Community 23 November 2019 в 01:47
поделиться

^\\d+ $, который является, "запускаются строки", "1 или более цифр", "конец строки" на английском языке.

11
ответ дан Mark Brackett 23 November 2019 в 01:47
поделиться

Это соответствует, потому что это находит "соответствие" не соответствием полной строки. Можно зафиксировать это путем изменения regexp для специфического искания начала и конца строки.

^\d+$
17
ответ дан kasperjj 23 November 2019 в 01:47
поделиться

Ваш regex будет соответствовать чему-либо, что содержит число, Вы хотите использовать привязки, чтобы соответствовать целой строке и затем соответствовать одному или нескольким числам:

regex = new Regex("^[0-9]+$");

Эти ^ привяжет начало строки, эти $ привяжет конец строки, и эти + будет соответствовать одному или нескольким из того, что предшествует ему (число в этом случае).

99
ответ дан Taz 23 November 2019 в 01:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: