Terraform中的正则表达式

Sam*_*Sam 9 regex terraform

我需要在我的Terraform代码中使用正则表达式.替换函数文档说如果包含在正斜杠中的字符串可以被视为正则表达式.

我尝试过以下方法:

Name = "${replace(var.string, var.search | lower(var.search), replace)}"
Run Code Online (Sandbox Code Playgroud)

我需要使用正则表达式来替换字符串的字符串或小写字母与替换字符串.

yda*_*coR 15

替换函数的Terraform文档说明您需要将搜索字符串包装在正斜杠中以便搜索正则表达式,这也可以在代码中看到.

Terraform使用re2库来处理正则表达式,这些正则表达式应该采用/i标志来使其不区分大小写.但是我似乎无法/search/i/让它工作(甚至尝试),但它确实支持Perl样式的正则表达式,除非在POSIX模式下,所以简单地为搜索变量添加前缀(?i)应该可以正常工作.

一个基本的工作示例如下所示:

variable "string"  { default = "Foo" }
variable "search"  { default = "/(?i)foo/" }
variable "replace" { default = "bar" }

resource "aws_instance" "example" {
  ami           = "ami-123456"
  instance_type = "t2.micro"

  tags {
    Name = "${replace(var.string, var.search, var.replace)}"
  }
}
Run Code Online (Sandbox Code Playgroud)