extract()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Získá shodu regulárního výrazu ze zdrojového řetězce.
Volitelně můžete převést extrahovaný podřetětěr na zadaný typ.
Syntaxe
extract(
regex,
captureGroup,
source [,
typeLiteral])
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
regex | string |
✔️ | Regulární výraz. |
captureGroup | int |
✔️ | Skupina zachycení, která se má extrahovat. 0 znamená celou shodu, 1 pro hodnotu odpovídající první závorce ('závorka') v regulárním výrazu a 2 nebo více pro následující závorky. |
source | string |
✔️ | Řetězec, který se má prohledávat. |
typeLiteral | string |
Pokud je k dispozici, extrahovaný podřetětěr je převeden na tento typ. Například typeof(long) . |
Návraty
Pokud regulární výraz najde shodu ve zdroji: podřetěc odpovídající zadané skupině captureGroup, volitelně převeden na typeLiteral.
Pokud neexistuje žádná shoda nebo převod typu selže: null
.
Příklady
Extrahování měsíce z řetězce datetime
Následující dotaz extrahuje měsíc z řetězce Dates
a vrátí tabulku s řetězcem kalendářního data a měsícem.
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
výstupní
DateString | Měsíc |
---|---|
15-12-2024 | 12 |
21-07-2023 | 7 |
10-03-2022 | 3 |
Extrahování uživatelského jména z řetězce
Následující příklad vrátí uživatelské jméno z řetězce. Regulární výraz ([^,]+)
odpovídá textu "User: " až do další čárky a efektivně extrahuje uživatelské jméno.
let Text = "User: JohnDoe, Email: johndoe@example.com, Age: 29";
| print UserName = extract("User: ([^,]+)", 1, Text)
výstupní
Uživatelské jméno |
---|
JohnDoe |
Související obsah
- extract-all – funkce
- extract-json – funkce
- parse – operátor
- regulárního výrazu