[英]How to use REGEXP_SUBSTR or REGEXP_EXTRACT in MySQL Workbench with database hosted on Google Cloud SQL?
[英]REGEXP_EXTRACT in Google Data Studio; Keep Getting 'Null'
我正在 Google 的 Data Studio 中創建報告,過去我在Keyword
維度上使用REGEXP_MATCH
並結合CASE
語句成功創建了幾個自定義維度,以創建我需要的維度。 這個讓我難住了。
我有通過Keyword
維度傳入的數據,其中包含我想提取並顯示為自定義維度的子字符串。
通過的關鍵字數據的子集如下所示:
09172018_rp_ws_1_og_
img s4_ac_p_act_
img s5_ws_5_m_
img s4_ws_5_m_
我正在嘗試使用REGEXP_EXTRACT
創建一個名為Image type
的新計算字段,該維度將所有條目分組,以 img 開頭,后跟一個空格,然后是任何字母數字,然后以下划線結尾。 因此所有帶有img s4
的條目將被組合在一起, img s5
將被組合在一起。 關鍵字維度中沒有該模式的任何內容都可以完全排除在數據集之外。
我無法使用REGEXP_EXTRACT
獲得除null
以外的任何結果。
在為新計算字段輸入公式時,即使只是嘗試REGEXP_EXTRACT(Keyword, '.*img.*')
產生空值。
讓我難過的是我嘗試了以下只是為了查看我的語法是否關閉,並且這個公式確實返回結果(只是不是我想要的,因為圖像類型沒有聚合)。
CASE
WHEN (REGEXP_MATCH(Keyword, '.*img.*')) THEN Keyword
ELSE "Not Set"
END
知道我哪里出錯了嗎? 無論我輸入什么,我都無法從REGEXP_EXTRACT(Keyword, 'your reg expression here')
中得到任何輸出。
請注意,為了從REGEXP_EXTRACT
提取任何文本,您應該在正則表達式模式中定義一個捕獲組。 簡而言之,用一對未轉義的括號將您需要提取的部分括起來。
現在,要在字符串的開頭匹配img
,您需要使用^
錨點,它匹配字符串位置的開頭。
要匹配 1 個或多個字符,請使用+
。
因此,您可以根據您的實際規則使用以下任何一種:
REGEXP_EXTRACT(Keyword, '^img ([a-zA-Z0-9_]+)')
REGEXP_EXTRACT(Keyword, '^img\\s+(\\w+)')
REGEXP_EXTRACT(Keyword, '^img\\s+(.+)')
細節
^
- 字符串的開始img
- 文字子串([a-zA-Z0-9_]+)
- 捕獲組 1:一個或多個字母、數字或_
\\s+
- 1 個或多個空格\\w+
- 1 個或多個字字符:字母、數字或_
.+
- 1 個或多個除換行符以外的字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.