extract()
Şunlar için geçerlidir: ✅Microsoft Fabric✅
Bir kaynak dizeden normal ifade için eşleşme alın.
İsteğe bağlı olarak, ayıklanan alt dizeyi belirtilen türe dönüştürün.
Sözdizimi
extract(
regex,
captureGroup,
kaynağı [,
typeLiteral])
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Zorunlu | Açıklama |
---|---|---|---|
regex | string |
✔️ | Normal ifade. |
captureGroup | int |
✔️ | Ayıklanması gereken yakalama grubu. 0, tüm eşleşme için, normal ifadedeki ilk '('parantez')' ile eşleşen değer için 1 ve sonraki parantezler için 2 veya daha fazla değer anlamına gelir. |
source | string |
✔️ | Aranacak dize. |
typeLiteral | string |
Sağlanırsa, ayıklanan alt dize bu türe dönüştürülür. Örneğin, typeof(long) . |
Döndürülenler
Regex kaynakta bir eşleşme bulursa: belirtilen yakalama grubu captureGroup ile eşleşen alt dize isteğe bağlı olarak typeLiteral'a dönüştürülür.
Eşleşme yoksa veya tür dönüştürmesi başarısız olursa: null
.
Örnekler
Datetime dizesinden ay ayıklama
Aşağıdaki sorgu, Dates
dizesinden ayı ayıklar ve tarih dizesi ve ay içeren bir tablo döndürür.
Sorgu çalıştırma
let Dates = datatable(DateString: string)
[
"15-12-2024",
"21-07-2023",
"10-03-2022"
];
Dates
| extend Month = extract(@"-(\d{2})-", 1, DateString, typeof(int))
| project DateString, Month
çıkış
DateString | Ay |
---|---|
15-12-2024 | 12 |
21-07-2023 | 7 |
10-03-2022 | 3 |
Dizeden kullanıcı adı ayıklama
Aşağıdaki örnek dizedeki kullanıcı adını döndürür. Normal ifade ([^,]+)
aşağıdaki "Kullanıcı: " metniyle bir sonraki virgülle eşleşir ve kullanıcı adı etkin bir şekilde ayıklanır.
Sorgu çalıştırma
let Text = "User: JohnDoe, Email: johndoe@example.com, Age: 29";
print UserName = extract("User: ([^,]+)", 1, Text)
çıkış
Kullanıcı adı |
---|
JohnDoe |
İlgili içerik
- tümünü ayıkla işlevi
- extract-json işlevi
- ayrıştırma işleci
- normal ifade