Не все программы возвращают строку, содержащую текст соответствующий формату Ip адреса или возникает необходимость проверки введенных данных пользователем. Рассмотрим пример проверки введенных или полученных данных на соответствие формату ip адреса, с использованием регулярных выражений.
Регулярное выражение – это шаблон, который обработчик регулярных выражений пытается сопоставить с введенным текстом. Шаблон состоит из односимвольных или многосимвольных литералов, операторов или конструкций. Данная технология изначально появилась в среде UNIX и обычно используется в языке программирования Perl. Разработчики из Microsoft перенесли ее в Windows, где до недавнего времени эта технология применялась в основном со сценарными языками. Регулярные выражения поддерживаются множеством классов .NET из пространства имен System.Text.RegularExpressions.
Создайте проект Windows Form в Microsoft Visual Studio и добавьте два компонента на главную форму.
Регулярное выражение можно разделить на три части. Первая часть «\b(?:\d{1,3}\.)» - выполняет проверку, является текст числом с точкой и длиной от одного до трех символов. Вторая часть {3}, указывает, что будет выполняться поиск вхождения строки в формате, три числа с точкой и длиной от одного до трех символов. И последняя часть «\d{1,3}\b», указывает, что в конце будет присутствовать чисто, длиной от одного до трех символов. Для проверки введенного текста используется функция «IsMatch», которая выполняет проверку обнаружено ли в указанной входной строке соответствие регулярному выражению, заданному в конструкторе System.Text.RegularExpressions.Regex. Если да то возвращается «true», если нет, то «false». Добавьте приведенный ниже метод в код главной формы.
Регулярное выражение – это шаблон, который обработчик регулярных выражений пытается сопоставить с введенным текстом. Шаблон состоит из односимвольных или многосимвольных литералов, операторов или конструкций. Данная технология изначально появилась в среде UNIX и обычно используется в языке программирования Perl. Разработчики из Microsoft перенесли ее в Windows, где до недавнего времени эта технология применялась в основном со сценарными языками. Регулярные выражения поддерживаются множеством классов .NET из пространства имен System.Text.RegularExpressions.
Создайте проект Windows Form в Microsoft Visual Studio и добавьте два компонента на главную форму.
- Timer – для мгновенной проверки введенных данных;
- TextBox – текстовое поле для ввода данных.
if (IsIpAddress(textBox1.Text))
{
textBox1.ForeColor = Color.Green;
}
else
{
textBox1.ForeColor = Color.Red;
} Далее необходимо добавить сам метод проверки. В данном методе инициализируется новый экземпляр класса System.Text.RegularExpressions.Regex с указанием регулярного выражения «\b(?:\d{1,3}\.){3}\d{1,3}\b».Регулярное выражение можно разделить на три части. Первая часть «\b(?:\d{1,3}\.)» - выполняет проверку, является текст числом с точкой и длиной от одного до трех символов. Вторая часть {3}, указывает, что будет выполняться поиск вхождения строки в формате, три числа с точкой и длиной от одного до трех символов. И последняя часть «\d{1,3}\b», указывает, что в конце будет присутствовать чисто, длиной от одного до трех символов. Для проверки введенного текста используется функция «IsMatch», которая выполняет проверку обнаружено ли в указанной входной строке соответствие регулярному выражению, заданному в конструкторе System.Text.RegularExpressions.Regex. Если да то возвращается «true», если нет, то «false». Добавьте приведенный ниже метод в код главной формы.
static bool IsIpAddress(string Address)
{
//Инициализируем новый экземпляр класса System.Text.RegularExpressions.Regex
//для указанного регулярного выражения.
System.Text.RegularExpressions.Regex IpMatch =
new System.Text.RegularExpressions.Regex(@"\b(?:\d{1,3}\.){3}\d{1,3}\b");
//Выполняем проверку обнаружено ли в указанной входной строке
//соответствие регулярному выражению, заданному в
//конструкторе System.Text.RegularExpressions.Regex.
//если да то возвращаем true, если нет то false
return IpMatch.IsMatch(Address);
} Запустите ваш проект нажав на клавиатуре, клавишу «F5». Введите любой ip адрес в текстовое поле, если вы ввели все правильно, цвет текста будет установлен зеленый, иначе красный. Если у вас имеется текст, содержащий ip адрес, но имеющий лишние символы. Например:- Ip_192.168.1.1
- 192.168.1.1_123
- dcef192.168.1.1abc
static string IpAddress(string Address)
{
string ip = string.Empty;
string pattern = @"\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?";
System.Text.RegularExpressions.Regex regex =
new System.Text.RegularExpressions.Regex(pattern);
System.Text.RegularExpressions.Match match = regex.Match(Address);
while (match.Success)
{
ip = match.Value;
match = match.NextMatch();
}
return ip;
}Ссылка для скачивания примера: Rusfolder.net


Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!