Terraform GCP 正则表达式中不支持转义序列

Saw*_*adi 2 regex escaping google-cloud-platform terraform

我正在尝试使用 terraform 代码在 GCP 中设置自定义指标。我在获取 4xx 和 5xx 响应代码时遇到标签提取器部分问题。根据控制台响应和 Google 构建器,我设法创建了这个正则表达式:

\\s([4-5][0-9][0-9])\\s\ 
Run Code Online (Sandbox Code Playgroud)
  • 当我使用此正则表达式运行代码时,我得到以下响应:

googleapi:错误 400:无法解析提取器表达式:第 1 行第 36 列的字符串文字中不支持转义序列,标记 '"\s([1-5][0-9][0-9])\s" '

  • 当我发送不带空格 ( \\s) 的正则表达式时,代码可以完美运行。
  • 我尝试过\之前"\零件的不同变体,但似乎都不起作用。
extracted_label = "REGEXP_EXTRACT(jsonPayload.message, \"\\s([1-5][0-9][0-9])\\s\")"
Run Code Online (Sandbox Code Playgroud)

我希望能够创建一个指标,但我无法绕过不受支持的转义序列问题。我将不胜感激任何帮助。

Saw*_*adi 9

我设法自己找到了这个问题的答案。正确的方法是使用 4 个斜杠\\\\ 固定代码行应如下所示:

extracted_label = "REGEXP_EXTRACT(jsonPayload.message, \"\\\\s([4-5][0-9][0-9])\\\\s\")" 
Run Code Online (Sandbox Code Playgroud)

另外,如果有人想在 Terraform GCP 中查找示例代码以从就绪状态检查中提取 HTTP 响应代码,这里是一个:

extracted_label = "REGEXP_EXTRACT(jsonPayload.message, \"\\\\w+\\\\/\\\\d\\\\.\\\\d\\\"\\\\s([4-5][0-9][0-9])\")"
Run Code Online (Sandbox Code Playgroud)