Регулярное выражение для выбора диапазона в .net - PullRequest
0 голосов
/ 03 января 2019

Мне нужно проверить выбор диапазона от 0 до 59. Вот то, что я пробовал, который работает частично.

var a = "0-8";
Regex reg = new Regex("[0-5][0-9]");
if(reg.IsMatch(a))
{
 return true;
}

Это частично работает для входа «12-24», но для входа «0-8» происходит сбой. Что мне нужно изменить регулярное выражение?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Я настоятельно рекомендую вам прочитать эту статью от Microsoft. Он расскажет вам все, что вам нужно знать о регулярных выражениях в C #.

0 голосов
/ 03 января 2019

Если вы хотите обнаружить всю строку и не допустить значения, такие как 2-ok или -11 или 55+56, тогда используйте ^([0-5]?[0-9]|60)-([0-5]?[0-9]|60)$ в качестве шаблона регулярного выражения:

var a = "0-8";
Regex reg = new Regex("^([0-5]?[0-9]|60)-([0-5]?[0-9]|60)$");
if(reg.IsMatch(a))
{
    return true;
}

Это будетвернуть следующие значения для указанного ввода:

var s1 = "0-59"; // true
var s2 = "59-59"; // true
var s3 = "0-60"; // false
var s4 = "0_59"; // false
var s5 = "60-59"; // false
var s6 = "59-0"; // true
var s7 = "0-0"; // true
var s8 = "0-"; // false
var s9 = "-0"; // false
var s10 = "0-80"; // false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...