在掌舵中的两个字符之间提取字符串
Extracting string between two characters in helm
我正在尝试从 _helper.tpl
中的 values.yaml
中提取 (
和 )
之间的所有字符串。
在我的_helper.tpl
{{- define "firstchart.extraction" -}}
{{- regexFindAll "(?<=\()(.*?)(?=\))" .Values.monitor.url -1 -}}
{{- end -}}
我的values.yaml
文件
monitor:
url: "(zone-base-url)/google.com/(some-random-text)"
所以我想提取 zone-base-url
和 some-random-text
。如何做到这一点?
看起来正则表达式库是不支持任何类型环视的 RE2。
这意味着,您需要将 non-consuming 环视“转换”为消费模式,仍然将捕获组保持在 \(
和 \)
分隔符之间:
{{- regexFindAll "\((.*?)\)" .Values.monitor.url -1 -}}
或者,
{{- regexFindAll "\(([^()]*)\)" .Values.monitor.url -1 -}}
详情:
\(
- 一个 (
字符
(.*?)
- 第 1 组:除换行符以外的任何零个或多个字符尽可能少([^()]*
匹配除 (
和 [=19 以外的零个或多个字符=] 个字符)
\)
- 一个 )
字符
-1
参数仅提取第 1 组内容。
模式中的文字反斜杠必须加倍以表示文字反斜杠。
我正在尝试从 _helper.tpl
中的 values.yaml
中提取 (
和 )
之间的所有字符串。
在我的_helper.tpl
{{- define "firstchart.extraction" -}}
{{- regexFindAll "(?<=\()(.*?)(?=\))" .Values.monitor.url -1 -}}
{{- end -}}
我的values.yaml
文件
monitor:
url: "(zone-base-url)/google.com/(some-random-text)"
所以我想提取 zone-base-url
和 some-random-text
。如何做到这一点?
看起来正则表达式库是不支持任何类型环视的 RE2。
这意味着,您需要将 non-consuming 环视“转换”为消费模式,仍然将捕获组保持在 \(
和 \)
分隔符之间:
{{- regexFindAll "\((.*?)\)" .Values.monitor.url -1 -}}
或者,
{{- regexFindAll "\(([^()]*)\)" .Values.monitor.url -1 -}}
详情:
\(
- 一个(
字符(.*?)
- 第 1 组:除换行符以外的任何零个或多个字符尽可能少([^()]*
匹配除(
和 [=19 以外的零个或多个字符=] 个字符)\)
- 一个)
字符
-1
参数仅提取第 1 组内容。
模式中的文字反斜杠必须加倍以表示文字反斜杠。