Регулярные выражения для IP адресов - C#

Узнай цену своей работы

Формулировка задачи:

возникла необходимость в парсинге диапазонов IP адресов, в привычном формате 0.0.0.0-255.255.255.255, а так же в CIDR формате..
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);

                        }
 
                    }
1. проблема в том, что регулярка видит только часть совпадения не все полностью как хотелось бы... 2. вопрос: как заменить всю проверяемую строку в textboxs'e на полученное совпадение?
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]+)?")

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы