Сопоставление шаблона с помощью Visual C# и регулярных выражений
В этой пошаговой статье описывается создание и использование регулярных выражений для определения соответствия строк определенным шаблонам.
Исходная версия продукта: Visual C#
Исходный номер базы знаний: 308252
Сводка
Регулярные выражения позволяют легко анализировать и сопоставлять строки с определенным шаблоном. Используя объекты, доступные RegularExpressions
в пространстве имен, можно сравнить строку с заданным шаблоном, заменить шаблон строки другой строкой или получить только части форматируемой строки. В этом примере мы создадим шаблон для проверки адреса электронной почты. В этой статье описывается пространство System.Text.RegularExpressions
имен библиотеки классов Microsoft платформа .NET Framework .
Требования
В этой статье предполагается, что вы знакомы со следующими разделами:
- Visual C#
- Синтаксис регулярных выражений
Использование регулярных выражений в соответствии с шаблоном
Запустите Visual C#.
Создайте консольное приложение Visual C#.
Укажите ключевое слово using в
Text.RegularExpressions
пространстве имен, чтобы позже в коде не требовалось указывать объявления в этих пространствах имен. Инструкция using должна использоваться перед любыми другими объявлениями:using System.Text.RegularExpressions;
Определите новое регулярное выражение, которое будет использовать совпадение шаблона для проверки адреса электронной почты. Следующее регулярное выражение структурировано для выполнения трех задач:
- Запишите подстроку перед символом
@
и поместите ее в группуuser
. - Запишите подстроку после символа
@
и поместите ее в группуhost
. - Убедитесь, что первая половина строки не содержит символа
@
.
Regex emailregex = new Regex("(?<user>[^@]+)@(?<host>.+)");
- Запишите подстроку перед символом
Определите новую строку, содержащую допустимый адрес электронной почты. Это значение предоставляет значение по умолчанию, если аргумент командной строки метода пуст:
String s = "johndoe@tempuri.org";
Проверьте наличие параметров командной строки. Если они есть, получите первый параметр и назначьте его переменной
s
.if (args.Length > 0) { s = args[0]; }
Используйте метод для
Match
передачи переменной адреса электронной почты и возврата новогоMatch
объекта. ОбъектMatch
возвращается независимо от того, были ли найдены совпадения в исходной строке.Match m = emailregex.Match(s);
Изучив
Success
свойство, можно решить, следует ли продолжать обработкуMatch
объекта или печатать сообщение об ошибке. В случае успешного выполнения отобразитеuser
именованные группы иhost
вGroups
коллекцииMatch
объекта .if (m.Success) { Console.WriteLine ("User: " + m.Groups["user"].Value); Console.WriteLine ("Host: " + m.Groups["host"].Value); } else { Console.WriteLine (s + " is not a valid email address"); } Console.WriteLine ();
Чтобы окно консоли оставалось открытым после запуска приложения, добавьте следующие строки кода:
System.Console.WriteLine("Press Enter to Continue..."); System.Console.ReadLine();
Выполните построение проекта.
Чтобы запустить приложение в среде разработки, используя адрес электронной почты по умолчанию, указанный в коде, нажмите клавишу F5 или выберите Пуск в меню Отладка . Чтобы запустить приложение с аргументом командной строки, можно выбрать три варианта:
- В меню Проект выберите пункт Свойства, а затем — Отладка. В разделе Параметры запуска на панели справа укажите адрес электронной почты, который требуется проверить. Нажмите клавишу F5 или нажмите кнопку Пуск в меню Отладка , чтобы запустить приложение.
- Запустите командное окно и перейдите к папке bin или debug под папкой, в которой находится проект. Затем введите имя исполняемого файла, а затем адрес электронной почты, который требуется проверить.
- Найдите исполняемый файл для этого проекта и перетащите его в меню Пуск... Окно запуска на панели задач. Добавьте адрес электронной почты для проверки и нажмите кнопку ОК.
Ссылки
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по