Data Studio Regex (Google RE2) 从路径中提取子目录

问题描述

我正在处理一个包含页面 URL 路径的 Google 数据洞察字段。示例:

  • /
  • /sample-url
  • /sample-url-2/
  • /#sample-url-5/
  • /sample-url-3/sample-url-4
  • /sample-url-3/sample-url-6

在每一个中,我想在自定义公式/字段中捕获粗体部分——从第一个斜线,直到但不包括第二个斜线(如果有),如果是整个斜线,还包括一个斜线小路。 (本质上,第一个子目录。)如果有第二个反斜杠会使解决方案更简单,我愿意记录第二个反斜杠,但我猜那样会更复杂。我尝试了以下方法

REGEXP_EXTRACT(Field,"^/[^/]+/$")

但是没有用;一切都返回空值。那个字符串有什么问题?

解决方法

^/[^/]+/$ 模式匹配以 / 字符开头,然后包含一个或多个除 / 以外的字符,然后以 / 字符结尾的字符串。因此,您只能匹配 /abc//123abc//abc-1 2 3.?!/ 等字符串。

你可以使用

REGEXP_EXTRACT(Field,"^(/[^/]*)")

参见regex demo

注意REGEXP_EXTRACT 需要模式中的捕获组,捕获的内容是返回值。

这里,^ 匹配字符串的开头,(/[^/]*) 是一个 捕获组,ID 为 1,匹配一个 / 字符,然后是任意零个或多个字符/ 以外的字符(带有 [^/]*)。