Regex Terraform中的正则表达式
我需要在我的Terraform代码中使用正则表达式。声明如果用正斜杠包装字符串,可以将其视为正则表达式 我尝试了以下方法:Regex Terraform中的正则表达式,regex,terraform,Regex,Terraform,我需要在我的Terraform代码中使用正则表达式。声明如果用正斜杠包装字符串,可以将其视为正则表达式 我尝试了以下方法: Name = "${replace(var.string, var.search | lower(var.search), replace)}" 我需要使用正则表达式将字符串或字符串的小写字母替换为替换字符串。Terraform文档提供了一种状态,您需要将搜索字符串包装为正斜杠,以便搜索正则表达式,这也可以在中看到 Terraform使用来处理正则表达式,该正则表达式假定
Name = "${replace(var.string, var.search | lower(var.search), replace)}"
我需要使用正则表达式将字符串或字符串的小写字母替换为替换字符串。Terraform文档提供了一种状态,您需要将搜索字符串包装为正斜杠,以便搜索正则表达式,这也可以在中看到 Terraform使用来处理正则表达式,该正则表达式假定使用了
/i
标志,使其不区分大小写。然而,我似乎根本无法让它工作(甚至尝试/search/I/
),但它确实支持,除非在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)}"
}
}
> replace("hello world", "/w.*d/", "everybody")
> hello everybody
另一个示例-从“string”变量末尾删除句点:
variable "string" { default = "Foo." }
"${replace("var.string", "\\.$", "")}"
我认为它是:
“${replace(var.string,“/\\.$/”,“)}”
只是为了帮助其他人查看这里。。。遵循Terraform文档:
要被识别为正则表达式,需要将模式置于/(斜线)之间,如下所示:
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)}"
}
}
> replace("hello world", "/w.*d/", "everybody")
> hello everybody
你到底用了什么,看到了什么?您是否在
/
中尝试过?是的,我尝试过在/slash之间使用字符串,例如/“str1 | str2/”和“/str1 | str2/”也可以使用/str1/str2”,但没有人会用替换字符串替换str1或str2。您尝试过/regex/ican了吗?请更具体一点?不获取i或regex所代表的内容通常i
是进行不区分大小写匹配的标志。请尝试/str1/i
对我来说,它只在变量周围没有引号的情况下工作,因此:“${replace(var.string,\\.$,”“)}”