Russian Qt Forum

Qt => Общие вопросы => Тема начата: 8Observer8 от Июль 28, 2014, 08:18



Название: 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)