共用方式為


extract_all()

適用於:✅Microsoft網狀架構Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel

從來源字串取得正則表達式的所有相符專案。 或者,擷取相符群組的子集。

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,] 來源)

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
regex string ✔️ 正則表達式,包含介於一到16個擷取群組之間。
captureGroups dynamic 陣列,表示要擷取的擷取群組。 有效值從 1 到正則表示式中的擷取群組數目。 也允許具名擷取群組。 請參閱 範例
source string ✔️ 要搜尋的字串。

傳回

  • 如果 regex 在來源尋找相符專案:傳回動態數位,包括針對指定的擷取群組擷取群組擷取群組的所有相符專案,或 regex 中的所有擷取群組。
  • 如果 captureGroups 的數目為 1:傳回的陣列具有相符值的單一維度。
  • 如果 captureGroup 的數目超過 1:如果省略 captureGroups,則傳回的陣列是每個 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”]]