【问题标题】:Terraform GCP Unsupported escape sequence in regexTerraform GCP 正则表达式中不支持的转义序列
【发布时间】:2019-07-26 08:56:11
【问题描述】:

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

\\s([4-5][0-9][0-9])\\s\ 
  • 当我使用这个正则表达式运行代码时,我得到这个响应:

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\")"

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

【问题讨论】:

    标签: regex google-cloud-platform escaping terraform


    【解决方案1】:

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

    extracted_label = "REGEXP_EXTRACT(jsonPayload.message, \"\\\\s([4-5][0-9][0-9])\\\\s\")" 
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      相关资源
      最近更新 更多