如何在Terraform中只打印匹配的图案词?

问题描述 投票:1回答:1

如果我得到这样的值

email = "Mark Johnson ([email protected])"

我如何才能只打印()中的字,并将其输出为()。

[email protected]

目前我使用的是regex,但似乎与我的模式不一致

email = regex("x{(,)}", "var.email")

我怎么能解决这个问题,谢谢你的帮助。

regex terraform word terragrunt
1个回答
2
投票

Terrafrom使用的是RE2 regex引擎,而 regex 如果您在regex模式中定义了一个捕获组,那么该函数只返回捕获值。如果你在模式中定义了一个以上的捕获组,它将返回一个捕获列表,但在这里,你只需要一个。

要提取括号内的所有文本。

> regex("[(]([^()]+)[)]", "Mark Johnson ([email protected])")

The [(] 匹配 ( char, ([^()]+) 将任何一个或多个字符捕获到第1组,并且 [)] 匹配 ) 字符串。

从括号中提取一个类似电子邮件的字符串。

> regex("[(]([^()@[:space:]]+@[^()[:space:]]+[.][^()[:space:]]+)[)]", "Mark Johnson ([email protected])")

这里, [^()@[:space:]]+ 匹配1个或多个除 (, ), @ 和whitespace。

参见 搜索引擎演示

© www.soinside.com 2019 - 2024. All rights reserved.