Я пытаюсь поймать список блоков CIDR в шаблоне Cloudformation (CF использует введите здесь описание ссылки синтаксис regex.). Следующее до сих пор перехватывает 1 блок CIDR:
(^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))$)
Я пытаюсь перехватить 1 или более (через запятую, пробелы допускаются между блоками cidr), используя следующее:
(^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))$)((, *)^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))$)*
но я получаю, что входная строка не соответствует разрешенному шаблону для следующего ввода:
10.10.10.10/32, 20.20.20.20/32, 30.30.30.30/32
Как я могу сопоставить список блоков cidr, разделенных запятой (пробел принимается)? почему мое решение не работает? Можно ли повторно использовать первую подходящую группу и повторно использовать ее, поэтому мне не нужно переписывать ее дважды?
РЕДАКТИРОВАТЬ: лучшее, что я могу придумать, это:
^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))(,+\s*([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2])))*$
но он также ловит 10.10.10.10/32,
, последняя запятая не должна быть поймана :(