Хорошо, поэтому я хотел, чтобы регулярное выражение анализировало неконтрактные (если это так называется) адреса ipv6.
Пример IPv6-адреса: 1050:::600:5:1000::
Что я хочу вернуть: 1050:0000:0000:600:5:1000:0000:0000
Моя попытка:
ip:gsub("%:([^0-9a-zA-Z])", ":0000")
Первая проблема с этим: Заменяет первый и второй :
Таким образом, ::
заменяется на :0000
.
Замена его на :0000:
не сработает, потому что тогда он будет заканчиваться на :
. Также это заметит, что синтаксический анализ недавно добавленного :
приводит к: 1050:0000::600:5:1000:0000:
Итак, для чего мне нужно это регулярное выражение?
Замените каждое :
на :0000
, если за ним не следует цифра или буква.
Основная проблема: ::
заменяется вместо 1 :