適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
ソース文字列から正規表現との一致を取得します。
必要に応じて、抽出された部分文字列を、指定した型に変換できます。
構文
extract(
regex,captureGroup,source [,typeLiteral])
構文規則について詳しく知る。
パラメーター
| 件名 | タイプ | 必須 | 説明 |
|---|---|---|---|
| regex | string |
✔️ | 正規表現。 |
| captureGroup | int |
✔️ | 抽出するキャプチャ グループ。 0 は一致全体を表し、1 は正規表現の最初の '('かっこ')' で一致する値を表し、後続のかっこには 2 つ以上を表します。 |
| ソース | string |
✔️ | 検索する文字列。 |
| typeLiteral | string |
指定した場合、抽出された部分文字列はこの型に変換されます。 たとえば、typeof(long) のようにします。 |
返品
regex によって source 内で一致が検出された場合: 指定されたキャプチャ グループ captureGroup に対して一致した substring。オプションで、typeLiteral に変換されます。
一致がないか、型変換が失敗した場合: null。
例
次の例では、文字列からユーザー名、電子メール、年齢を抽出します。 正規表現は、情報を抽出するために使用されます。
クエリ を実行する
let _data = datatable(Text: string)
[
"User: James, Email: James@example.com, Age: 29",
"User: David, Age: 35"
];
_data |
extend UserName = extract("User: ([^,]+)", 1, Text),
EmailId = extract(@"Email: (\S+),", 1, Text),
Age = extract(@"\d+", 0, Text)
出力
| テキスト | UserName |
EmailId |
Age |
|---|---|---|---|
| ユーザー: James, Email: James@example.com, 年齢: 29 | ジェームズ | James@example.com | 二十九 |
| ユーザー: David、年齢: 35 | デビッド | 35 |
次の例では、文字列 Dates から月を抽出し、日付文字列と月を int 型として持つテーブルを返します。
クエリ を実行する
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
出力
| DateString | Month |
|---|---|
| 15-12-2024 | 12 |
| 21-07-2023 | 7 |
| 10-03-2022 | 3 |
関連するコンテンツ
- extract-all 関数
- extract-json 関数
- parse 演算子
- 正規表現 を
する