Как я могу соответствовать адресам IPv6 Perl regex?

Большое количество является стандартным временем JS

new Date(1221644506800)

среда 17 сентября 2008 19:41:46 GMT+1000 (EST)

5
задан brian d foy 27 November 2009 в 11:35
поделиться

4 ответа

Этот содержит патч для Regexp :: Common, демонстрирующий полное, точное, протестированное регулярное выражение IPv6. Это прямой перевод грамматики IPv6. Regexp :: IPv6 также является точным.

Что еще более важно, он содержит набор тестов. Запуск его с вашим регулярным выражением показывает, что вам еще далеко. 10 из 19 пропущены. 1 из 12 ложных срабатываний. IPv6 содержит множество специальных сокращений, позволяющих легко ошибиться.

Лучшее место для чтения того, что входит в адрес IPv6, - это RFC 3986 раздел 3.2.2.

13
ответ дан 18 December 2019 в 05:31
поделиться

Что значит нельзя просто использовать библиотеку? Как насчет модуля? Regexp :: IPv6 даст вам то, что вам нужно.

10
ответ дан 18 December 2019 в 05:31
поделиться

Я не эксперт по IPv6, но, пожалуйста, поверьте мне, когда я скажу вам, что сопоставление (не говоря уже о проверке) адресов IPv6 непросто с помощью очень простого регулярного выражения, такого как то, которое вы предлагаете. Существует множество сокращений и различных соглашений для объединения адреса с портом, просто чтобы назвать пример. Одним из таких сокращений является то, что вы можете записать 0: 0: 0: 0: 0: 0: 0: 1 как :: 1, но это еще не все. Если вы читаете по-немецки, я бы посоветовал посмотреть слайды выступления Штеффена Ульриха на 11-м семинаре German Perl Workshop.

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

5
ответ дан 18 December 2019 в 05:31
поделиться

Попробуйте следующее:

^([0-9a-fA-F]{4}|0)(\:([0-9a-fA-F]{4}|0)){7}$

От Обычное Библиотека выражений: IPv6-адрес

Вы также должны прочитать это: Регулярное выражение для IPv6-адресов

1
ответ дан 18 December 2019 в 05:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: