如何在 Looker Studio 透過 REGEXP_EXTRACT 抓取特定分隔符號之間的內容?
前言
相信大家應該都有類似的經驗,就是將數據串接 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 報表時,都能有效撈取您想要的資料!