regexp_extract_all 기능

적용 대상:예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime

식과 일치하는 str 모든 문자열을 regexp 추출하고 그룹 인덱스에 regex 해당합니다.

구문

regexp_extract_all(str, regexp [, idx] )

인수

  • str STRING: 일치시킬 식입니다.
  • regexp STRING: 일치하는 패턴이 있는 식입니다.
  • idx: 0보다 크거나 같은 선택적 정수 식입니다(기본값 1).

반품

ARRAY<STRING>입니다.

문자열은 regexp 정규식이어야 합니다. 지원되는 구문 에 대한 정규식을 참조하세요.

리터럴을 사용하는 경우 (raw-literal접두사)r 이스케이프 문자 사전 처리를 방지합니다.

regexp에는 여러 그룹이 포함될 수 있습니다. idx는 추출할 regex 그룹을 나타냅니다. idx가 0이면 전체 정규식과 일치시키는 것입니다.

일반적인 오류 조건

예제

모든 일치 항목에서 캡처 그룹 추출

idx 는 각 일치 항목에서 반환할 캡처 그룹을 선택합니다.

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 1);
 [100, 300]

> SELECT regexp_extract_all('100-200, 300-400', r'(\d+)-(\d+)', 2);
 [200, 400]

문자열의 모든 숫자 추출

> SELECT regexp_extract_all('There are 10 cats, 20 dogs, and 30 birds', r'(\d+)', 1);
 [10, 20, 30]

모든 해시태그 추출

> SELECT regexp_extract_all('Posts tagged #data #ai #sql', r'#(\w+)', 1);
 [data, ai, sql]

그룹 없는 패턴의 모든 일치 항목 추출

패턴에 캡처 그룹이 없는 경우 0을 idx 사용하여 전체 일치 항목을 반환합니다.

> SELECT regexp_extract_all('Send to alice@example.com or bob@example.org', r'\w+@\w+\.\w+', 0);
 [alice@example.com, bob@example.org]

잘못된 정규식 패턴

> SELECT regexp_extract_all('abc', '[invalid', 0);
  Error: INVALID_PARAMETER_VALUE.PATTERN