적용 대상:
Databricks SQL
Databricks Runtime 11.3 LTS 이상
str와 일치하는 regexp의 첫 번째 하위 문자열을 반환합니다.
구문
regexp_substr( str, regexp )
인수
-
strSTRING: 일치시킬 식입니다. -
regexpSTRING: 일치하는 패턴이 있는 식입니다.
반품
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