regexp_substr 기능

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

str와 일치하는 regexp의 첫 번째 하위 문자열을 반환합니다.

구문

regexp_substr( str, regexp )

인수

  • str STRING: 일치시킬 식입니다.
  • regexp STRING: 일치하는 패턴이 있는 식입니다.

반품

STRING.

regexp_substr 는 개별 캡처 그룹이 아닌 일치하는 전체 부분 문자열 regexp 을 반환합니다. 특정 캡처 그룹을 반환하려면 regexp_extract 사용합니다. 첫 번째 일치 항목만 고려됩니다. 모든 일치 항목을 반환하려면 regexp_extract_all 사용합니다.

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

리터럴을 사용할 때, 이스케이프 문자 사전 처리를 피하기 위해 raw-literal (r 접두사)을 사용하세요.

이거나NULLregexp, 패턴을 찾을 수 없으면 str 결과는 .입니다NULL.

일반적인 오류 조건

예제

여러 가지 대안 중 하나 일치

패턴 Ste(v\|ph)en 은 둘 중 하나 Steven 또는 Stephen. 함수는 첫 번째 일치 항목을 반환합니다.

> SELECT regexp_substr('Steven Jones and Stephen Smith are the best players', r'Ste(v|ph)en');
 Steven

문자열에서 첫 번째 숫자 추출

백슬래시를 두 배로 늘리지 않고 regex 엔진에 전달되도록 \d 원시 리터럴을 사용합니다.

> SELECT regexp_substr('item 42 costs $19', r'\d+');
 42

대/소문자를 구분하지 않는 일치

인라인 플래그를 (?i) 사용하여 대/소문자를 무시합니다.

> SELECT regexp_substr('Error: disk full', r'(?i)error');
 Error

전자 메일 주소 추출

> SELECT regexp_substr('Contact alice@example.com for details', r'\w+@\w+\.\w+');
 alice@example.com

첫 번째 해시태그 추출

regexp_substr 는 첫 번째 일치 항목만 반환합니다. 모든 일치 항목을 반환하려면 regexp_extract_all 사용합니다.

> SELECT regexp_substr('Posts tagged #data #ai #sql', r'#\w+');
 #data

일치 항목이 반환되지 않음 NULL

빈 문자열 regexp_substr 을 반환하는 regexp_extract 패턴이 없는 경우 반환 NULL 합니다.

> SELECT regexp_substr('Mary had a little lamb', r'Ste(v|ph)en');
 NULL

NULL input 반환 NULL

> SELECT regexp_substr(NULL, r'Ste(v|ph)en');
 NULL

> SELECT regexp_substr('Mary had a little lamb', NULL);
 NULL

잘못된 정규식 패턴

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