Проверка IPv4-адресов с помощью регулярного выражения - PullRequest
52 голосов
/ 12 марта 2011

Я пытался получить эффективное регулярное выражение для проверки IPv4, но без особой удачи.Мне показалось, что в какой-то момент у меня было это с (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}, но это дает некоторые странные результаты:

$ grep --version
grep (GNU grep) 2.7
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.1
192.168.1.1
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.255
192.168.1.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.255.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.2555
192.168.1.2555

Я выполнил поиск, чтобы выяснить, было ли это уже задано и получено, но другие ответы кажутсяпросто покажи, как определить 4 группы из 1-3 чисел, или у меня не работает.

Ответы [ 32 ]

0 голосов
/ 12 апреля 2018

^((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]?))$


Выше приведено регулярное выражение для IP-адреса, например: 221.234.000.112 также для 221.234.0.112, 221.24.03.112, 221.234.0.1


Вы можете представить все виды адресов, как указано выше

0 голосов
/ 09 сентября 2016

Я думаю, что это самый короткий.

^(([01]?\d\d?|2[0-4]\d|25[0-5]).){3}([01]?\d\d?|2[0-4]\d|25[0-5])$
...