если Вы хотите посмотреть на этот список и перейти быстро между соответствиями, рассмотреть использование
:vimgrep example %
, или
:grep example %
Это заполнит "ошибочный список" со всеми соответствиями так, чтобы можно было использовать :copen
для списка их всех в буфере quickfix, нажатие вводят в конкретную строку для перехода к тому соответствию или командам использования как :cn
и :cp
для движения назад и вперед.
для полного объяснения, см. мой ответ на подобный вопрос
^ (? =. {1,255} $) [0-9A-Za-z] (?: (?: [0-9A-Za-z] | -) {0, 61} [0-9A-Za-z])? (?: \. [0-9A-Za-z] (?: (?: [0-9A-Za-z] | -) {0,61} [0-9A-Za-z])?) * \.? $
Ваш ответ был относительно близок.
Но см.
Для RE с именем хоста этот модуль perl создает
( ?: (?: (?: (?: [a-zA-Z0-9] [- a-zA-Z0-9] *)? [a-zA-Z0-9]) [.]) * (? : [a-zA-Z] [- a-zA-Z0-9] * [a-zA-Z0-9] | [a-zA-Z]) [.]?)
Я бы изменил, чтобы быть более точным:
(?: (?: (?: (?: [A-zA-Z0-9] [- a-zA-Z0-9] {0,61 })? [a-zA-Z0-9]) [.]) * (?: [a-zA-Z] [- a-zA-Z0-9] {0,61} [a-zA-Z0- 9] | [a-zA-Z]) [.]?)
Необязательно привязывая концы к ^ $
ТОЛЬКО для соответствия имен хостов.
Я не думаю, что один RE может выполнить полную проверку, потому что, согласно Википедии , там - ограничение на длину 255 символов, которое, я не думаю, может быть включено в тот же RE, по крайней мере, без множества изменений, но достаточно просто проверить длину <= 255 перед запуском RE.
Обратите внимание на следующий вопрос. В некоторых ответах есть регулярные выражения для имен хостов
Не могли бы вы указать, на каком языке вы хотите использовать это регулярное выражение? Большинство языков / систем имеют несколько разные реализации регулярных выражений, которые влияют на ответы людей.