【问题标题】:Google Data Studio Calculated Field / REGEX Assistance RequestGoogle 数据洞察计算字段/正则表达式协助请求
【发布时间】:2021-06-27 16:11:58
【问题描述】:

我使用Google Data Studio 将包含页面 URL 的大型网站站点地图与五年前相同页面 URL 的 Google Analytics 性能数据相结合。我现在正试图根据它们的长度和 URL 中正斜杠的数量 (/) 来识别每个 URL 的导航深度。主页的导航深度为 0,其下方的页面为 1,依此类推。

我一直在编写一段代码来执行此操作:

LENGTH(REGEXP_REPLACE(Page, "[^\\/]/g", "")) - 1

简而言之,如果我正确理解了我整理的代码,我正在尝试识别 Page 值中不是正斜杠 (/) 的所有字符,并使用 REGEXP_REPLACE,将它们替换为 @ 987654328@(什么都没有),基本上只留下正斜杠,然后计算它们的长度以确定有多少,因此导航深度减 1 以删除所有页面 URL 中的第一个。 /g 是我包含的一个全局变量,因为它在我用来测试代码的 REGEX 创建者中不起作用。据我所知,双重转义的\\ 是 Google Data Studio 的一个特殊之处。

相关字段包含如下所示的数据:

/testing-data/page-123/page-321/name-of-page/

我的代码应该会生成4 (5-1),但当前会生成1

【问题讨论】:

    标签: regex url google-data-studio re2 trailing-slash


    【解决方案1】:

    Calculated Field 下面的 / 代表正在搜索的短语:

    DIVIDE((LENGTH(Page) - LENGTH(REGEXP_REPLACE(Page, "/", ""))) , LENGTH("/"))-1
    

    使用伪代码(和字符串/testing-data/page-123/page-321/name-of-page/)分解上述内容:

    • DIVIDE((LENGTH(All Characters) - LENGTH(All Characters Excluding /)) , LENGTH(of /)-1

    关于计算,每个阶段的值是:

    • DIVIDE((45 - 40) , 1)-1

    Editable Google Data Studio Report(内嵌Google Sheets数据源)和一个GIF来详细说明:

    【讨论】:

      【解决方案2】:

      事实证明,我使用的代码的以下变体有效:

      LENGTH(REGEXP_REPLACE(Page, "[^/]", "")) - 1
      

      我遇到的导致值设置为 1 的问题显然不是因为计算,而是由于计算字段上的设置,因为它是在 Google Data Studio 的混合数据部分下引入的。它一直将其作为“唯一计数”而不是简单的 Sum 数据类型。结果,它在 REGEX 方程中正确计算了数字,而不是在我正在查看的表格中。

      我尝试运行您提供的 @Nimantha 代码,并且效果也很好。所以,

      有两个答案:

      DIVIDE((LENGTH(All Characters) - LENGTH(All Characters Excluding /)) , LENGTH(of /)-1
      

      LENGTH(REGEXP_REPLACE(Page, "[^/]", "")) - 1
      

      感谢您将我踢向正确的方向。一旦我意识到两个逻辑代码 sn-ps 不可能是原因,我就在别处寻找原因。非常感谢。

      【讨论】:

        猜你喜欢
        • 2019-11-15
        • 2021-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多