extract_all()

從來源字串取得規則運算式的所有相符項目。 選擇性地擷取相符群組的子集。

print extract_all(@"(\d+)", "a set of numbers: 123, 567 and 789") // results with the dynamic array ["123", "567", "789"]

已被取代的別名: extractall ()

語法

extract_all(regex, [captureGroups,] source)

深入瞭解 語法慣例

參數

名稱 類型 必要 Description
RegEx string ✔️ 規則運算式,包含 1 到 16 個擷取群組。
captureGroups dynamic 陣列,表示要擷取的擷取群組。 有效值從 1 到規則運算式中的擷取群組數目。 也允許具名擷取群組。 請參閱 範例
source string ✔️ 要搜尋的字串。

傳回

  • 如果 regexsource 中找到相符項目:傳回動態陣列,包括 regex 中所指出擷取群組 captureGroups 或所有擷取群組的所有相符項目。
  • 如果 captureGroups 數目為1:傳回的陣列具有相符值的單一維度。
  • 如果 captureGroups 數目超過 1:傳回的陣列是每個 captureGroups 選取範圍的多值相符項目二維集合,或者,如果省略 captureGroups,則是 regex 中的所有擷取群組。
  • 如果沒有相符項目:null

範例

擷取單一擷取群組

下列查詢會傳回 GUID) 兩個十六進位位數的十六進位表示法 (。

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"([\da-f]{2})", Id) 

輸出

識別碼 guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 ["82","b8","be","2d","df","a7","4b","d1","8f","63","24","ad","26","d3","14","49"]

擷取數個擷取群組

下列查詢會使用具有三個擷取群組的正則表達式,將每個 GUID 部分分割成第一個字母、最後一個字母,以及中間的任何專案。

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", Id)

輸出

識別碼 guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]

擷取一小部分的擷取群組

下列查詢會選取擷取群組的子集。

規則運算式會比對第一個字母、最後一個字母和所有其餘內容。

captureGroups 參數只會用來選取第一個和最後一個部分。

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(\w)(\w+)(\w)", dynamic([1,3]), Id) 

輸出

識別碼 guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","d"],["d","7"],["4","1"],["8","3"],["2","9"]]

使用具名擷取群組

下列查詢中的 captureGroups 同時使用擷取群組索引和具名擷取群組參考來擷取相符的值。

print Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"
| extend guid_bytes = extract_all(@"(?P<first>\w)(?P<middle>\w+)(?P<last>\w)", dynamic(['first',2,'last']), Id) 

輸出

識別碼 guid_bytes
82b8be2d-dfa7-4bd1-8f63-24ad26d31449 [["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]