簡體   English   中英

使用正則表達式從由下划線分隔的字符串中提取所有元素

[英]Extract all elements from a string separated by underscores using regex

我正在嘗試捕獲所有元素並將其存儲在與以下字符串不同的列中,通過下划線(廣告的廣告系列名稱)分隔,然后我希望將其與具有真實值的主表進行比較以確定數據的准確性記錄。

例如:輸入: 在此處輸入圖片說明

預期輸出是: 在此處輸入圖片說明

我的第一個元素提取是: REGEXP_EXTRACT(campaign_name, r"[^_+]{3}")) as parsed_campaign_agency

我只提取了前 3 個字母,因為根據命名約定(真值表),機構名稱僅由 3 個字母組成。

警告某些元素也可以具有可變長度。 例如。 第三個元素“CrossBMC”的長度可以是 3 個字母或更多。

我是 regex 的新手,數據位於 SQL 表中(在 BigQuery 中),所以我認為它可以通過 SQL 的 regex_extract 實現,但我遇到的問題是一次提取所有元素。

任何幫助表示贊賞:)

如果下划線的數量不變並且知道您可以使用SUBSTRING_INDEX ,例如:

SELECT 
    SUBSTRING_INDEX(campaign_name,'_',1) first,
    SUBSTRING_INDEX(SUBSTRING_INDEX(campaign_name,'_',2),'_',-1) second,
    SUBSTRING_INDEX(SUBSTRING_INDEX(campaign_name,'_',3),'_',-1) third
FROM your_table; 

在這里你可以嘗試一個例子SQLize.online

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM