如何在 Looker Studio 透過 REGEXP_EXTRACT 抓取特定分隔符號之間的內容?

Looker Studio Jan 23, 2024
快速導覽

前言

相信大家應該都有類似的經驗,就是將數據串接 Looker Studio 製作報表的過程中,想要針對某些數據欄位(比方說網址)進行切分,取出特定的字段作為分類的依據。

這部分可以透過 Looker Studio 的 REGEXP_EXTRACT 這個函式來達成。但是這個函式到底該怎麼使用,以及如果我要取得其中不同的區段該如何調整?本篇文章幫大家統整作法,希望對各位有所幫助!


REGEXP_EXTRACT 簡介

首先我們需要先瞭解 REGEXP_EXTRACT 這個函式的用途。

這個函式主要是透過正規表示式(Regular expressions) 的語法,幫我們取得指定欄位「第一個符合」的子字串資訊。如果您對於正規表示式還不是那麼瞭解的讀者,可以參考 Looker Studio 的官方文件

※ 語法:

REGEXP_EXTRACT(X, regular_expression)

※ 參數說明:

  • X:要提取的字串來源
  • regular_expression:提取上述字串的正規表達式

※ 回傳值:

回傳符合此正規表達式指定的字串


範例情境

廣告活動中的參數資訊通常以特定符號區隔,這裡我們使用 Looker Studio 中的 REGEXP_EXTRACT 函式,透過正規表達式提取特定位置的資訊。本文將以實例說明如何從廣告活動參數中提取不同資訊。

現在假設我有一檔廣告活動參數(campaign)如下:

ZH|TW|Location|Country|Product ID|Product Name

步驟一:理解區隔符號

  首先,我們需理解這串文字是透過 " | " 這個符號來區隔每一段資訊。

步驟二:使用 REGEXP_EXTRACT 函式

  接下來,我們使用 REGEXP_EXTRACT 函式,以正規表達式擷取特定資訊。

舉例:

(1)取得語言(ZH)資訊 (第一筆):

REGEXP_EXTRACT(campaign, '([^\\|]*)')

※ 重點解說:

  ^:表示字串的開頭。

  ([^\\|]*):擷取以 " | " 開頭的字串之前的內容。

所以上述指令的意思是:擷取以 " | " 開頭的字串之前的內容

(2)取得國家(TW)資訊:

REGEXP_EXTRACT(campaign, '^(?:[^\\|]*\\|){1}([^\\|]*)')

※ 重點解說:

  \\:跳脫字元,表示接在它後面的字元需要以 ”字元” 表示。白話解讀的意思就是,在它後面的任何符號,都把它當作是文字

  (?:[^\\|]*\\|):表示擷取以 " | " 區隔的內容,即 " | " 和 " | " 之間的字串。

  {1}:用於指定擷取的位置是第幾組位置。

所以整串指令的意思就是:從第二段以 " | " 區隔的內容中,擷取字串。

(3)取得位置(Location)資訊:

REGEXP_EXTRACT(campaign, '^(?:[^\\|]*\\|){2}([^\\|]*)')

重點解說:

  \\:跳脫字元,表示接在它後面的字元需要以 ”字元” 表示。白話解讀的意思就是,在它後面的任何符號,都把它當作是文字

  (?:[^\\|]*\\|):表示擷取以 " | " 區隔的內容,即 " | " 和 " | " 之間的字串。

  {2}:用於指定擷取的位置是第幾組位置。

所以整串指令的意思就是:從第三段以 " | " 區隔的內容中,擷取字串。

(4)取得產品名稱(Product Name)資訊 (最後一筆):

REGEXP_EXTRACT(campaign, '([^\\|]*)$')

重點解說:

  \\:跳脫字元,表示接在它後面的字元需要以 ”字元” 表示。白話解讀的意思就是,在它後面的任何符號,都把它當作是文字

  ([^\\|]*):擷取以 " | " 開頭的字串之前的內容。

  $:字串的結尾。

雖然原本的條件是擷取以 “|” 開頭的字串之前的內容,但是由於多加上 “$” 表示字串結尾,因此整串指令的意思就變成:擷取最後一個 " | " 之後的字串。


結語

在瞭解上述範例之後,您只需要將區隔符號調整為您的資料格式,就可以很方便的取得整串文字的開頭、結尾,或是任意一個區段的資料囉。希望能幫助讀者們在製作 Looker Studio 報表時,都能有效撈取您想要的資料!


Tags