다음을 통해 공유


추출()

적용 대상: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

원본 문자열에서 정규식 일치 항목을 가져옵니다.

필요에 따라 추출된 부분 문자열을 표시된 형식으로 변환합니다.

통사론

extract( regex,captureGroup,원본 [,typeLiteral])

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 필수 묘사
정규식 string ✔️ 정규식.
captureGroup int ✔️ 추출할 캡처 그룹입니다. 0은 전체 일치를 의미하고, 정규식에서 첫 번째 '('괄호')'와 일치하는 값의 경우 1, 후속 괄호에 대해 2개 이상을 나타냅니다.
원본 string ✔️ 검색할 문자열입니다.
typeLiteral string 제공된 경우 추출된 부분 문자열이 이 형식으로 변환됩니다. 예를 들어 typeof(long).

반환

regex소스일치하는 항목을 찾은 경우: 지정된 캡처 그룹 captureGroup일치하는 부분 문자열로, 선택적으로 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, Age: 29 야고보 James@example.com 이십구
사용자: 데이비드, 나이: 35 David 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