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

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

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

возникла необходимость в парсинге диапазонов IP адресов, в привычном формате 0.0.0.0-255.255.255.255, а так же в CIDR формате..
Листинг программы
  1. 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])");
  2. 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]))");
  3. for (int i = 0; i < text.Lines.Length; i++)
  4. {
  5. string ip_lines = text.Lines[i];
  6. Match ip_ranges = ip_range.Match(ip_lines);
  7. Match cidr_ranges = cidr_ip.Match(ip_lines);
  8. if (ip_ranges.Success || cidr_ranges.Success)
  9. {
  10. // text.Lines[i].Replace(text.Lines[i].ToString(),ip_ranges)
  11.  
  12. MessageBox.Show(
  13. ip_ranges.Value.ToString(),
  14. cidr_ranges.Value.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
  15.  
  16. }
  17. }
1. проблема в том, что регулярка видит только часть совпадения не все полностью как хотелось бы... 2. вопрос: как заменить всю проверяемую строку в textboxs'e на полученное совпадение?
UP.
up.

Решение задачи: «Регулярные выражения для IP адресов»

textual
Листинг программы
  1. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы