Terrafrom использовал механизм регулярных выражений RE2, а функция regex
возвращает только захваченное значение, если вы определяете группу захвата в шаблоне регулярного выражения. Он вернет список захвата, если в вашем шаблоне более одной группы захвата, но здесь вам нужна только одна.
Чтобы извлечь весь текст в круглых скобках:
> regex("[(]([^()]+)[)]", "Mark Johnson (mark@johnson.com)")
[(]
соответствует (
char, ([^()]+)
захватывает в Группу 1 любой один или несколько символов в Группу 1, а [)]
соответствует )
char.
Чтобы извлечь строку, похожую на электронную почту из круглых скобок:
> regex("[(]([^()@[:space:]]+@[^()[:space:]]+[.][^()[:space:]]+)[)]", "Mark Johnson (mark@johnson.com)")
Здесь [^()@[:space:]]+
соответствует 1 или более символам, кроме (
, )
, @
и пробелов.
См. регулярное выражение демо