Регулярные выражения для 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]+)?")
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д