如果我得到这样的值
email = "Mark Johnson ([email protected])"
我如何才能只打印()中的字,并将其输出为()。
[email protected]
目前我使用的是regex,但似乎与我的模式不一致
email = regex("x{(,)}", "var.email")
我怎么能解决这个问题,谢谢你的帮助。
Terrafrom使用的是RE2 regex引擎,而 regex
如果您在regex模式中定义了一个捕获组,那么该函数只返回捕获值。如果你在模式中定义了一个以上的捕获组,它将返回一个捕获列表,但在这里,你只需要一个。
要提取括号内的所有文本。
> regex("[(]([^()]+)[)]", "Mark Johnson ([email protected])")
The [(]
匹配 (
char, ([^()]+)
将任何一个或多个字符捕获到第1组,并且 [)]
匹配 )
字符串。
从括号中提取一个类似电子邮件的字符串。
> regex("[(]([^()@[:space:]]+@[^()[:space:]]+[.][^()[:space:]]+)[)]", "Mark Johnson ([email protected])")
这里, [^()@[:space:]]+
匹配1个或多个除 (
, )
, @
和whitespace。
参见 搜索引擎演示