extract_all()

Bir kaynak dizeden normal ifade için tüm eşleşmeleri alın. İsteğe bağlı olarak, eşleşen grupların bir alt kümesini alın.

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

Kullanım dışı bırakılan diğer adlar: extractall()

Syntax

extract_all(Regex, [captureGroups,] Kaynak)

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
Regex string ✔️ Bir ile 16 yakalama grubu arasında bir normal ifade .
captureGroups dynamic Ayıklanması gereken yakalama gruplarını gösteren bir dizi. Geçerli değerler 1'den normal ifadedeki yakalama gruplarının sayısına kadardır. Adlandırılmış yakalama gruplarına da izin verilir. Örneklere bakın.
Kaynak string ✔️ Aranacak dize.

Döndürülenler

  • Regexkaynakta bir eşleşme bulursa: Belirtilen yakalama grupları captureGroups veya kayıt defterindeki tüm yakalama gruplarıyla tüm eşleşmeleri içeren dinamik diziyi döndürür.
  • CaptureGroups sayısı 1 ise: Döndürülen dizi, eşleşen değerlerin tek bir boyutuna sahiptir.
  • CaptureGroups sayısı 1'den fazlaysa: Döndürülen dizi, captureGroups seçimi başına çok değerli eşleşmelerden oluşan iki boyutlu bir koleksiyondur veya captureGroups atlanırsa regex'te bulunan tüm yakalama gruplarıdır.
  • Eşleşme yoksa: null.

Örnekler

Tek bir yakalama grubunu ayıklama

Aşağıdaki sorgu GUID'nin onaltılık bayt gösterimini (iki onaltılık basamak) döndürür.

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

Çıktı

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

Birkaç yakalama grubunu ayıklama

Aşağıdaki sorgu, her GUID bölümünü ilk harfe, son harfe ve ortada olan her şeye bölmek için üç yakalama grubu içeren bir normal ifade kullanır.

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

Çıktı

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

Yakalama gruplarının bir alt kümesini ayıklama

Aşağıdaki sorgu, yakalama gruplarının bir alt kümesini seçer.

Normal ifade ilk harfle, son harfle ve geri kalan tüm harfle eşleşir.

captureGroups parametresi yalnızca ilk ve son parçaları seçmek için kullanılır.

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

Çıktı

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

Adlandırılmış yakalama gruplarını kullanma

Aşağıdaki sorgudaki captureGroups , eşleşen değerleri getirmek için hem yakalama grubu dizinlerini hem de adlandırılmış yakalama grubu başvurularını kullanır.

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) 

Çıktı

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