Так что это не технически дублирующее сообщение. Я пытаюсь определить, почему я не могу получить регулярное выражение для разделения. Я решил разбить его, чтобы он был более читабельным. Он работал в какой-то момент, но теперь по какой-то причине я не могу заставить его сотрудничать. Я случайно добавил что-то там, где я не должен был? Дополнительный (|) в самом начале регулярного выражения - это разрешить пустой IPv6-адрес.IPv6 regex issue
Вот код: (Да это в функции, я просто не включают в себя все остальное.)
local IPV6="^(|([0-9a-f]{1,4}:){1,1}(:[0-9a-f]{1,4}){1,6}|"
"([0-9a-f]{1,4}:){1,2}(:[0-9a-f]{1,4}){1,5}|"
"([0-9a-f]{1,4}:){1,3}(:[0-9a-f]{1,4}){1,4}|"
"([0-9a-f]{1,4}:){1,4}(:[0-9a-f]{1,4}){1,3}|"
"([0-9a-f]{1,4}:){1,5}(:[0-9a-f]{1,4}){1,2}|"
"([0-9a-f]{1,4}:){1,6}(:[0-9a-f]{1,4}){1,1}|"
"(([0-9a-f]{1,4}:){1,7}|:):|"
":(:[0-9a-f]{1,4}){1,7}|"
"((([0-9a-f]{1,4}:){6})(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|"
"(([0-9a-f]{1,4}:){5}[0-9a-f]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})|"
"([0-9a-f]{1,4}:){5}:[0-9a-f]{1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|"
"([0-9a-f]{1,4}:){1,1}(:[0-9a-f]{1,4}){1,4}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|"
"([0-9a-f]{1,4}:){1,2}(:[0-9a-f]{1,4}){1,3}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|"
"([0-9a-f]{1,4}:){1,3}(:[0-9a-f]{1,4}){1,2}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|"
"([0-9a-f]{1,4}:){1,4}(:[0-9a-f]{1,4}){1,1}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|"
"(([0-9a-f]{1,4}:){1,5}|:):(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}|"
":(:[0-9a-f]{1,4}){1,5}:(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3})$"
if [[ !($ADDRESS =~ $IPV6) ]]; then
echo "OOPS"
return
fi
Какая ошибка? Или в каком случае ваше регулярное выражение не работает? – nhahtdh
Не работает период. Это ничего не значит. – Atomiklan
Возможно, вам нужен флаг, чтобы игнорировать пробелы; это, скорее всего, приведет к разрыву строк буквально и включит их в выражение. – brandonscript