Terraform — регулярное выражение

#regex #terraform

#регулярное выражение #terraform

Вопрос:

У меня есть следующий список

 variable "global_aws" {
  default = [
    "10.20.16.0/20",
    "192.168.0.0/16"
  ]
}
  

Я хочу извлечь только префикс подсети, чтобы я мог получить 10.20.16.0 и 192.168.0.0 соответственно

У меня это пока:

 name = "${replace(element(var.global_aws, count.index), "//*/", "")}"
  

В настоящее время я получаю:

 name:"10.20.16.0.020"
name:"192.168.0.016"
  

Желаемый результат

 name:"10.20.16.0.0"
name:"192.168.0.0"
  

Комментарии:

1. Ты пробовал : name = "${replace(element(var.global_aws, count.index), "//d*/", "")}"

2. просто сделал и получил: недопустимый побег символа

3. name = "${replace(element(var.global_aws, count.index), '//d*/', '')}"

4. спасибо, но получил ту же ошибку: (

Ответ №1:

Вместо того, чтобы пытаться регулярно выражать префикс, вы можете вместо этого использовать cidrhost() функцию:

 $ terraform console
> cidrhost("10.20.16.0/20", 0)
10.20.16.0