Название: IP-адрес неверно парсится Отправлено: 8Observer8 от Июль 28, 2014, 08:18 Привет!
Для парсинга IP-адресов использую такое регулярное выражение: Цитировать (((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3} ((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])) Для примера такой список IP-адресов: Цитировать 125.134.23.1 5.134.23.122 5.134.999.122 Результат получаю такой: Цитировать 125.134.23.1 5.134.23.12 То есть последний IP-адрес обрезан. Почему? Название: Re: IP-адрес неверно парсится Отправлено: alex312 от Июль 28, 2014, 08:39 То есть последний IP-адрес обрезан. Почему? может потому что 5.134.999.122 не совсем правильный адрес ?Название: Re: IP-адрес неверно парсится Отправлено: VanDerSam от Июль 28, 2014, 08:40 Из-за того, что компонент строки '999.' не удовлетворяет РВ. Внимательно проанализируйте разбор вручную.
Название: Re: IP-адрес неверно парсится Отправлено: 8Observer8 от Июль 28, 2014, 08:42 IP с числом 999 я для теста написал, чтобы посмотреть, что он отсеивается. А вот этот 5.134.23.122 почему обрезается?
Название: Re: IP-адрес неверно парсится Отправлено: VanDerSam от Июль 28, 2014, 08:45 Из-за подвыражения (\d{1,2}), оно раньше (1\d{2}) срабатывает.
Название: Re: IP-адрес неверно парсится Отправлено: 8Observer8 от Июль 28, 2014, 08:52 Большое спасибо! Переставил местами - работает! :)
Название: Re: IP-адрес неверно парсится Отправлено: VanDerSam от Июль 28, 2014, 08:54 Пожалуйста! Хочу посоветовать использовать книгу "Регулярные выражения. Сборник рецептов", Гойверт, Левитан. Там большое кол-во уже готовых решений имеется.
Название: Re: IP-адрес неверно парсится Отправлено: 8Observer8 от Июль 28, 2014, 09:08 Спасибо! Я сейчас изучаю по книге "Регулярные выражения. 10 минут на урок", Бен Форта (175 страниц). Как её основательно изучу, то начну, ту что вы посоветовали. И ещё Бен Форта советует во введении своей книги изучить потом "Регулярные выражения", Дж. Фридл
P.S. Я ещё параллельно изучаю "SQL. 10 минут на урок", Бен Форта (287 страниц) Название: Re: IP-адрес неверно парсится Отправлено: OKTA от Июль 28, 2014, 10:42 Проверять и тестировать регулярные выражения очень удобно вот здесь http://regex101.com/
Название: Re: IP-адрес неверно парсится Отправлено: 8Observer8 от Июль 28, 2014, 12:42 OKTA, спасибо! :)
Я прикрепил тестер, которым сам пользуюсь (с книжкой Бена шёл) (http://i6.pixs.ru/storage/0/7/6/255png_3001600_13167076.png) |