RIGHTFIND 函式

傳回輸入字串中,最後一個相符字串例項所在位置的索引值。系統會從右至左進行搜尋。

輸入內容可以是資料欄參照或字串常值,不過字串常值的用法很少見。

  • 資料欄參照可以參照字串資料欄、物件資料欄或陣列類型資料欄,以便資料在被完全拆分成表格資料前使用 RIGHTFIND 函式加以篩選。
  • 於字串尾端指定開始位置。
  • 不論字串索引值為何,傳回值一律來自字串開頭。
  • 如果找不到相符項目,函式會傳回空值。
  • 如果您需要判斷值是否在陣列中,可以使用 MATCHES 函式,此函式會傳回 true/false 回應。請參閱 MATCHES 函式

您也可以從左邊開始搜尋字串,詳情請參閱 FIND 函式

基本用法

資料欄參照範例:

derive type:single value: RIGHTFIND(MyName,'find this',true,0)

輸出:在 MyName 資料欄值中,從值的尾端開始搜尋 find this 字串的最後一個例項,忽略大小寫。如果找到相符項目,則該字串開頭的索引值會寫入新資料欄。

字串常值範例:

derive type:single value: RIGHTFIND('Hello, World','lo',false,2)

輸出:從字符串的倒數第三個字符開始,在 Hello, World 字串中搜尋字串 lo,搜尋時區分大小寫。因為在從左邊算來第四個字元的位置找到相符項目,所以系統會將 3 值寫入新資料欄。

If 範例:

derive type:single value: IF(RIGHTFIND(SearchPool,'FindIt') >= 0, 'found it', '') as: 'Finds'

輸出:SearchPool 資料欄值中,從值的尾端開始搜尋搜尋 FindIt 字串 (預設)。預設行為會區分大小寫。如果找到字串,則新資料欄 Finds 會含有 found it 值。否則,資料欄會空白。

語法

derive type:single value:RIGHTFIND(column_string,string_pattern,[ignore_case], [start_index])

引數是否必要?資料類型說明
column_string字串要套用於函式的資料欄名稱或字串文字
string_pattern字串要尋找的字串文字或模式
ignore_case布林值如果值為 true,執行比對時不會區分大小寫。預設值為 false
start_index整數 (非負整數)

如果有指定,這個值會識別要在來源資料中搜尋是否有相符項目的起始索引值。

附註:這個值是從字串尾端指定。

如果沒有指定,則會搜尋整個字串。

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

column_string

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

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

如果系統在資料欄中找不到值,則會產生起始索引參數值。

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

使用須知:

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

string_pattern

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

  • 如果系統找不到字串或資料欄值,則會產生起始索引參數值。
    • 字串文字必須以引號括住 ('Hello, World')。
  • 不支援多個值和萬用字元。

使用須知:

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

ignore_case

如果值為 true,則 RIGHTFIND 函式會在比對字串常值或模式值時忽略大小寫。

預設值為 false,這表示執行比對時會依預設區分大小寫。

使用須知:

是否必要?資料類型範例值
布林值true

start_index

資料欄或字串常值中要從字串尾端開始搜尋的字元索引。例如,2 值會指示 RIGHTFIND 函式從資料欄或字串值的第三個字元開始搜尋。

附註:索引值從 0 開始。如果沒有指定此值,則預設值為 0,表示從字串尾端開始搜尋整個字串。

  • 值必須為非負整數。

  • 如果這個值大於字串長度,則無法執行比對作業。

使用須知:

是否必要?資料類型範例值
整數 (非負整數)2

範例

範例:在網址中尋找檔案名稱

在本範例中,您必須從網址值的資料欄中擷取檔案名稱。有些資料列中不含檔案名稱,且有部分網址結構變體版本。

來源:

網址
www.example.com
http://www.example.com
http://www.example.com/test_app
http://www.example.com/index.html
http://www.example.com/resources/mypic.jpg
http://www.example.com/pages/mypage.html
http://www.example.com/resources/styles.css
www.example.com/resources/styles.css

轉換:

若要保留原始資料欄,您可以使用下列指令建立來源的工作版本:

derive type:single value:URL as:'filename'

您可以使用下列指令將工作資料欄的格式標準化:

replace: col:filename on:'http:' with:'' ignoreCase:true

提示:若要使用 Cloud Dataprep 模式移除 https://,您可能需要修改上述指令。

接下來兩個步驟可以計算 filename 值中正斜線和點值的所在位置 (如果有),計算方式如下所示:

derive type:single value: RIGHTFIND(filename,"\/",true,0) as: 'rightFindSlash'

derive type:single value: RIGHTFIND(filename,".",true,0) as: 'rightFindDot'

如果上述任一值為 0,即代表檔案名稱不存在:

set col:filename value:IF((rightFindSlash == 0) || (rightFindDot == 0), '', RIGHT(filename,(LEN(filename)-rightFindSlash)))

結果:

移除中繼資料欄後,您應該會看到以下結果:

URLfilename
www.example.com
http://www.example.com
http://www.example.com/test_app
http://www.example.com/index.htmlindex.html
http://www.example.com/resources/mypic.jpgmypic.jpg
http://www.example.com/pages/mypage.htmlmypage.html
http://www.example.com/resources/styles.cssstyles.css
www.example.com/resources/styles.cssstyles.css

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

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

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