Как создать регулярное выражение в C#?

  • 12 Просмотры
  • Последний пост 12 июня 2018
Chainik разместил пост 08 июня 2018

 Хочу создать регулярное выражение, что бы когда ввожу значение для первой переменной пароль я мог ввести только цифры, для второй, логин, только буквы и цифры. Пожалуйста с примером кода и объясните построчно что где и как происходит, давно интересна эта тема, но никак не доходили руки.

Отсортировать по: Стандартный | Последний | Голоса
Петр Алексеевич разместил пост 08 июня 2018

Доброго времени суток. 

Писать полноценную программу я не буду, но суть на примерах вставок из кода я передать постараюсь.

Для того что бы ставить ограничение на ввод пользователя вы правильно сказали, что нужно создавать регулярное выражение. Но само по себе регулярное выражение не будет осуществлять необходимых вам проверок без использования так называемых "метасимволов".

В языке C# существует множество различных метасимволов, о которых вы подробно можете узнать при просмотре 4го видеоурока в рамках соответствующего курса. Я же в данном примере использую только необходимое вам для решения задачи.

Для решения задачи вам будут необходимы следующие метасимволы:

  • \d - определяет символы цифр.
  • \w - определяет любой символ, который является цифрой, буквой или нижним подчёркиванием.

Затем нужно создать регулярные выражения, которые будут "настроены" на наши метасимволы:

            string ForPassword = @"\d";
            string ForLogin = @"\w";

            var regexPassword = new Regex(ForPassword);
            var regexLogin = new Regex(ForLogin);

Теперь давайте проверим ввод на корректность, используя регулярные выражение, которые мы определили выше:

            string PasswordInput = Console.ReadLine();
            if (!(regexPassword.IsMatch(PasswordInput)))
                throw new Exception("Incorrect input.");

            string LoginInput = Console.ReadLine();
            if (!(regexLogin.IsMatch(LoginInput)))
                throw new Exception("Incorrect input.");

В случае некорректного ввода, в данном примере, будет выскакивать исключение с соответствующим сообщением.

Вот и всё. Всё что вам остаётся - перенести эти отрезки кода в соответствующий метод и обработать исключения что б программа не вылетала при каждом неверном вводе.

Если заинтересовала тема регулярок или хочется узнать о них больше - просмотрите видеокурс C# Professional

Дима Мусиенко разместил пост 12 июня 2018

Close