Я думаю, что многие люди, читающие этот пост, будут искать более простые регулярные выражения, даже если они соответствуют некоторым технически недопустимым IP-адресам. (И, как отмечалось в другом месте, регулярное выражение, вероятно, в любом случае не подходит для правильной проверки IP-адреса.)
Удалите ^
и, если применимо, замените $
на \b
, если вы не хотите совпадать с началом / концом строки.
Базовое регулярное выражение (BRE) (проверено на GNU grep, GNU sed и vim):
/^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$/
Расширенное регулярное выражение (ERE):
/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/
или
/^([0-9]+(\.|$)){4}/
Регулярное выражение, совместимое с Perl (PCRE) (протестировано на Perl 5.18):
/^\d+\.\d+\.\d+\.\d+$/
или
/^(\d+(\.|$)){4}/
Ruby (протестировано на Ruby 2.1):
Хотя предполагается, что это PCRE, Ruby по любой причине допустил, что это регулярное выражение не разрешено в Perl 5.18:
/^(\d+[\.$]){4}/
Мои тесты для всех этих онлайн здесь .