Регулярные выражения для IP адресов - C#
Формулировка задачи:
возникла необходимость в парсинге диапазонов IP адресов, в привычном формате 0.0.0.0-255.255.255.255, а так же в CIDR формате..
1. проблема в том, что регулярка видит только часть совпадения не все полностью как хотелось бы...
2. вопрос: как заменить всю проверяемую строку в textboxs'e на полученное совпадение?
Листинг программы
- private Regex ip_range = new Regex(@"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])[-](([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])");
- private Regex cidr_ip = new Regex(@"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))");
- for (int i = 0; i < text.Lines.Length; i++)
- {
- string ip_lines = text.Lines[i];
- Match ip_ranges = ip_range.Match(ip_lines);
- Match cidr_ranges = cidr_ip.Match(ip_lines);
- if (ip_ranges.Success || cidr_ranges.Success)
- {
- // text.Lines[i].Replace(text.Lines[i].ToString(),ip_ranges)
- MessageBox.Show(
- ip_ranges.Value.ToString(),
- cidr_ranges.Value.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
- }
- }
UP.
up.
Решение задачи: «Регулярные выражения для IP адресов»
textual
Листинг программы
- new Regex(@"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)([^\s]+)?")
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д