SUBSTITUTE 函式

使用字串取代在來源中找到的字串常值或模式。

可以將輸入指定為資料欄參照、傳回字串的函式,或字串文字,雖然字串文字的用法較少見。

  • 資料欄參照可以參照字串類型的資料欄。
  • 如果找不到相符項目,此函式會傳回來源字串。
  • 如果在單一字串中找到多個相符項目,則會替換所有相符項目。

基本用法

資料欄參照範例:

set col:myURL value:SUBSTITUTE(myURL,`{ip-address}`,myDomain)

輸出:myURL 資料欄值中,搜尋符合有效 IP 位址的子字串。若找到相符項目,則系統會以 myDomain 資料欄中的對應值來取代所有相符項目。

函式參照範例:

set col:companyName value:SUBSTITUTE(UPPER(companyName),'ACME','New ACME')

輸出:companyName 資料欄中,搜尋字串常值 ACME 的大寫版本值。找到相符項目時,將 companyName 資料欄中的相符項目換成 New ACME

語法

derive type:single value:SUBSTITUTE(string_source,string_pattern,replacement_string)

引數是否必要?資料類型說明
string_source字串要套用於函式的資料欄名稱、傳回字串的函式或字串文字
string_pattern字串要尋找的字串文字或模式
string_replacement字串要用於替換的字串文字
pattern_before字串在尋找 string_pattern 值之前,要尋找的字串文字或模式。
pattern_after字串在尋找 string_pattern 值之後要尋找的字串文字或模式。

若要進一步瞭解語法標準,請參閱語言文件語法附註

string_source

待搜尋的項目名稱。有效值可以是:

  • 字串文字必須以引號括住 ('Hello, World')。
  • 資料欄參照,參照的類型及其所有可能值必須能推測為字串。
  • 傳回字串值的函式。

不支援多個值和萬用字元。

使用須知:

是否必要?資料類型範例值
字串文字或資料欄參照 (字串、陣列或物件)myColumn

string_pattern

要尋找的字串文字或模式。這個值可以是字串文字、Cloud Dataprep 模式或規則運算式。

  • 字串文字必須以引號括住 ('Hello, World')。
  • 不支援多個值和萬用字元。

使用須知:

是否必要?資料類型範例值
字串文字或模式'Hello'

string_replacement

用來取代任何相符模式的值。值可以是字串、傳回字串值的函式,或含有字串的資料欄參照。

  • 字串文字必須以引號括住 ('Hello, World')。
  • 資料欄參照,其類型可以被推測為涵括所有值的字串

不支援多個值和萬用字元。

使用須知:

是否必要?資料類型範例值
字串文字或資料欄參照 (字串、陣列或物件)'##REDACTED##'

pattern_before

尋找相符模式之前,要在位置中尋找的字串文字或模式。

提示:如果來源中可能有多個相符的模式例項,則使用這個參數。

使用須知:

是否必要?資料類型範例值
字串文字或模式`{digit}{3}`

pattern_after

尋找相符的模式之後,要在位置中尋找的字串文字或模式。

提示:如果來源中可能有多個相符的模式例項,則使用這個參數。

使用須知:

是否必要?資料類型範例值
字串文字或模式' '

範例

範例 - 信用卡號碼部分模糊處理

來源:

假設您下列的交易資料含有客戶信用卡號碼。

TransactionIdCreditCardNumAmtDollars
T0014111-1111-1111-1111100.29
T0025500-0000-0000-0004510.21
T0033400-0000-0000-009162.13
T0043000-0000-0000-04294.12

基於安全理由,您想要遮蓋前三組數字,只顯示最後一組數字。

轉換:

若要進行替換,您必須先將資料欄類型變更為字串:

settype col: CreditCardNum type: 'String'

然後使用下列轉換指令來執行模式替換,以 XXXX 取代結尾是連字號的四位數數字組:

set col: CreditCardNum value: substitute(CreditCardNum, `{digit}+\-`, 'XXXX-')

為了表示資料欄不再包含有效資訊,您可以選擇重新命名該資料欄,如下所示:

rename mapping: [CreditCardNum,'CreditCardNumOBSCURED']

結果:

TransactionIdCreditCardNumOBSCUREDAmtDollars
T001XXXX-XXXX-XXXX-1111100.29
T002XXXX-XXXX-XXXX-0004510.21
T003XXXX-XXXX-XXXX-009162.13
T004XXXX-XXXX-XXXX-04294.12

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁