Подтвердите полное доменное имя без отрицательного просмотра - PullRequest
1 голос
/ 02 июля 2019

Я нашел эту ссылку (www.regextester.com/103452) для проверки на основе REGEX.

(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+[a-zA-Z]{2,63}$)

Но есть одна проблема, Oracle не распознает положительный / отрицательный взгляд.

Первый положительный взгляд (?=^.{4,253}$) прост, я могу просто проверить длину строки, но для отрицательного взгляда (?!-) У меня возникли проблемы с определением.

1 Ответ

1 голос
/ 03 июля 2019

((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+ означает 1 или более повторений:

  • (?!-)[a-zA-Z0-9-]{0,62} - от 0 до 62 букв, цифр или - с первым символом последовательности, не равным -
  • [a-zA-Z0-9] - буква или цифра
  • \. - точка.

Перефразирование: может содержать от 1 до 63 букв, цифр или - без - в качестве первого или последнего символа последовательности перед ..

Вместо этого используйте ([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+, оно будет соответствовать 1 или более повторениям:

  • [a-zA-Z0-9] - буква или цифра
  • ([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])? - необязательная последовательность от 0 до 61 буквы, цифры или -, а затем 1 обязательная буква или цифра должна следовать за
  • \. -точка.

Итак, он снова сопоставляет от 1 до 63 символов без - в начале или в конце последовательности цифра-буква-дефис.

...