跳到主要內容 跳至補充內容

ExtractRegEx - 指令碼與圖表函數

ExtractRegEx() 會使用指定的規則運算式模式從輸入字串運算式中擷取文字。如果未找到相符項,則該函數將傳回空值。

此函數執行區分大小寫的 Regex 操作。您也可以使用變體 ExtractRegExI() 來執行不區分大小寫的 Regex 操作。

語法:  

ExtractRegEx (text, regex [, field_no])

傳回的資料類型: 字串

引數
引數 描述
text 包含要在傳回值中擷取之文字的字串運算式。
regex 用於擷取文字的規則運算式。
field_no

要擷取之相符項的編號。當可能在文字中找到規則運算式的多個相符項時,這非常有用。例如,指定值 4 以擷取第四個相符項。此為選用引數。指定負值以反轉相符項的順序。

無論該函數是在載入指令碼還是圖表運算式中使用,以下內容都適用:

  • 如果 field_no 為正,則函數將傳回一個值,從左到右識別相符項。

  • 如果 field_no 為負,則函數將傳回一個值,從右到左識別相符項。

當在載入指令碼中使用該函數時:

  • 如果在 LOAD 陳述式中使用 ExtractRegEx() 函數且省略 field_no,則函數會產生與相符項一樣多的記錄。

  • 如果使用 ExtractRegEx() 載入數個欄位且所有項均未指定 field_no 引數,則會建立所有組合的 Cartesian 產品。

當在圖表運算式中使用該函數時:

  • 如果省略 field_no,則預設值為 1

函數範例
範例 結果
ExtractRegEx('a,b c;1 2,3','[a-z]|[0-9]', 1) 傳回 a,這是找到的第一個相符項。
ExtractRegEx('a,b c;1 2,3','[a-z]|[0-9]', 2) 傳回 b,這是找到的第二個相符項。
ExtractRegEx('a,b c;1 2,3','[a-z]|[0-9]', 4) 傳回 1,這是找到的第四個相符項。
ExtractRegEx('abc','a|b',-1) 傳回 b。當指定負值時,相符項將反向計數。
ExtractRegEx('A,B C;1 2,3','[a-c]|[4-9]') 傳回 Null 值,因為 ExtractRegEx() 區分大小寫,且未使用不區分大小寫的變體。
ExtractRegExI('A,B C;1 2,3','[a-c]|[4-9]') 傳回 A,因為使用了不區分大小寫的變體 ExtractRegExI()

使用情境

您可以使用 Extract RegEx() 從可能還包含其他資訊之資料 (例如,自由文字或 JSON 字串) 中擷取想要隔離的資訊。例如︰

  • 從文字中擷取電子郵件地址、電話號碼、帳號和其他資訊。

  • 從文字中擷取數值 (例如貨幣)。

  • 標準化文字或數字資料的格式。

範例 1 – 用於從 JSON 擷取電子郵件地址的載入指令碼

範例 2 – 用於從貨幣金額中擷取數值的載入指令碼

範例 3 – 用於從 JSON 擷取電子郵件地址的圖表運算式

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!