Регулярные выражения для 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]+)?")