Проверка IP с помощью регулярного выражения - PullRequest
4 голосов
/ 17 февраля 2009

Мне нужно проверить диапазон IP-адресов в формате от 000000000 до 255255255 без разделителей между 3 группами чисел. Каждая из трех групп, из которых состоит окончательный IP, должна быть от 000 (да, с добавлением 0) до 255.

Поскольку это моя первая запись в стеке, пожалуйста, будьте снисходительны, если я не следовал этикету правильно.

Ответы [ 5 ]

8 голосов
/ 17 февраля 2009
^([01]\d{2}|2[0-4]\d|25[0-5]){3}$

, который разбивается на следующие части:

  1. 000-199
  2. 200-249
  3. 250-255

Если вы решили, что хотите 4 октета вместо 3, просто измените последний {3} на {4}. Кроме того, вы должны знать и об IPv6.

5 голосов
/ 17 февраля 2009

Я бы лично не использовал регулярные выражения для этого. Я думаю, что проще убедиться, что строка состоит из 9 цифр, разбить строку на 3 группы из трехзначных чисел, а затем проверить, что каждое число находится в диапазоне от 0 до 255 включительно.

Если вы действительно настаиваете на регулярном выражении, то вы можете использовать что-то вроде этого:

"([0-1][0-9][0-9]|2[0-4][0-9]|25[0-5]){3}"

Выражение состоит из чередования трех терминов: первый соответствует 000-199, второй 200-249, третий 250-255. {3} требует совпадения ровно три раза.

1 голос
/ 17 февраля 2009

Это довольно распространенный вопрос. Здесь - хорошая вводная страница по регулярным выражениям, в которой в качестве примера приведен этот случай. Он включает в себя периоды, но вы можете их легко редактировать.

0 голосов
/ 10 января 2015
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b

Я использую этот RegEx для поиска всех ip в коде из моего проекта

0 голосов
/ 22 января 2013

для сопоставления исключительно допустимого использования IP-адреса

(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}

вместо

([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])(([01]?[0-9][0-9]?|2[0-4][0-9]|25[0-5])){3}

потому что многие движки регулярных выражений соответствуют первой возможности в последовательности ИЛИ

Вы можете попробовать свой движок регулярных выражений с: 10.48.0.200

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...