如果我得到像
email = "Mark Johnson (mark@johnson.com)"
我怎样才能只打印()中的单词并输出变成
mark@johnson.com
目前我使用正则表达式,但它似乎不适用于我的模式
email = regex("x{(,)}", "var.email")
我该如何解决这个问题,谢谢您的帮助。
如果我得到像
email = "Mark Johnson (mark@johnson.com)"
我怎样才能只打印()中的单词并输出变成
mark@johnson.com
目前我使用正则表达式,但它似乎不适用于我的模式
email = regex("x{(,)}", "var.email")
我该如何解决这个问题,谢谢您的帮助。
Terrafrom 使用 RE2 正则表达式引擎,regex
如果您在正则表达式模式中定义捕获组,则该函数仅返回捕获的值。如果您的模式中有多个捕获组,它将返回捕获列表,但在这里,您只需要一个。
提取括号内的所有文本:
> regex("[(]([^()]+)[)]", "Mark Johnson (mark@johnson.com)")
[(]
匹配一个(
字符,将([^()]+)
任何一个或多个字符捕获到组 1 中,然后[)]
匹配一个)
字符。
从括号中提取类似电子邮件的字符串:
> regex("[(]([^()@[:space:]]+@[^()[:space:]]+[.][^()[:space:]]+)[)]", "Mark Johnson (mark@johnson.com)")
在这里,匹配除、和空格之外的[^()@[:space:]]+
1 个或多个字符。(
)
@
查看正则表达式演示