적용 대상: SQL Server 2025(17.x)
Microsoft Fabric에서Azure SQL Database
Azure SQL Managed Instance
SQL 데이터베이스 미리 보기
비고
미리 보기 기능으로, 이 문서에 제시된 기술에는 Microsoft Azure 미리 보기에 대한 보충 사용 약관이 적용됩니다.
정규식 패턴이 발견되는 대체 문자열로 대체된 수정된 소스 문자열을 반환합니다. 일치하는 항목이 없으면 함수는 원래 문자열을 반환합니다.
REGEXP_REPLACE
(
string_expression,
pattern_expression [, string_replacement [, start [, occurrence [, flags ] ] ] ]
)
주장들
string_expression
문자열의 식입니다.
문자열의 상수, 변수 또는 열일 수 있습니다.
데이터 형식: char, nchar, varchar 또는 nvarchar.
비고
, REGEXP_LIKE
및 REGEXP_COUNT
함수는 REGEXP_INSTR
string_expression 매개 변수에 대해 LOB 형식(varchar(max) 및 nvarchar(max))을 최대 2MB까지 지원합니다.
패턴_표현식
일치시킬 정규식 패턴입니다. 일반적으로 텍스트 리터럴입니다.
데이터 형식: char, nchar, varchar 또는 nvarchar. pattern_expression 최대 문자 길이는 8,000바이트입니다.
string_replacement
일치하는 부분 문자열에 대한 대체 문자열을 지정하고 패턴과 일치하는 부분 문자열을 대체하는 문자열 식입니다. string_replacement char, varchar, nchar 및 nvarchar 데이터 형식일 수 있습니다. 빈 문자열(' '
)을 지정하면 함수는 일치하는 모든 패턴을 제거하고 결과 문자열을 반환합니다. 기본 대체 문자열은 빈 문자열(' '
)입니다.
string_replacement \n포함할 수 있습니다. 여기서 n은 1부터 9까지이며, 패턴의 n'th 괄호 그룹(하위 식)과 일치하는 소스 부분 문자열을 삽입해야 하며 전체 패턴과 일치하는 부분 문자열을 삽입해야 함을 나타내기 위해 포함 &
할 수 있습니다. 대체 텍스트에 리터럴 백슬래시를 넣어야 하는 경우 \를 씁니다.
예를 들면 다음과 같습니다.
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) \2-\3')
반환 값:
(123) 456-7890
제공된 \n
string_replacement
값이 pattern_expression 그룹 수보다 크면 함수는 이 값을 무시합니다.
다음은 그 예입니다.
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) (\4)-xxxx')
반환 값:
(123) ()-xxxx
start
검색 문자열 내에서 검색의 시작 위치를 지정합니다. 선택 사항입니다. 유형이 int 또는 bigint입니다.
번호 매기기는 1부터 시작합니다. 즉, 식의 첫 번째 문자는 1
값이어야 합니다 >= 1
. 시작 식이 보다 1
작으면 오류를 반환합니다. 시작 식이 string_expression 길이보다 크면 함수는 string_expression 반환합니다. 기본값은 1
입니다.
발생
검색하거나 바꿀 원본 문자열 내에서 패턴 식의 발생을 지정하는 식(양의 정수)입니다. 기본값은 1
입니다.
string_expression 첫 번째 문자를 검색합니다. 양의 정n
수의 경우 nth
첫 번째 발생 후 첫 번째 문자로 시작하는 항목을 검색 합니다.
플래그
일치 항목을 검색하는 데 사용되는 한정자를 지정하는 하나 이상의 문자입니다. varchar 또는 char 형식이며 최대 30자입니다.
예: ims
. 기본값은 c
입니다. 빈 문자열 (' ')
이 제공되면 기본값 ('c')
으로 처리됩니다. 또는 다른 문자 식을 제공합니다 c
. 플래그에 모순된 문자가 여러 개 있는 경우 SQL Server는 마지막 문자를 사용합니다.
예를 들어 regex를 지정 ic
하면 대/소문자를 구분하는 일치 항목이 반환됩니다.
값에 지원되는 플래그 값에 나열된 문자가 아닌 문자가 포함된 경우 쿼리는 다음 예제와 같은 오류를 반환합니다.
Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
지원되는 플래그 값
깃발 | 설명 |
---|---|
i |
대/소문자를 구분하지 않습니다(기본값 false ) |
m |
여러 줄 모드: ^ $ 시작/끝 텍스트 외에 시작/끝 선 일치(기본값 false ) |
s |
일치 . 허용\n (기본값false ) |
c |
대/소문자 구분(기본값 true ) |
반환 값
식.
예시
제품 이름의 모든 항목을 a
바꾸거나 e
X
제품 이름으로 바꿉니다.
SELECT REGEXP_REPLACE(PRODUCT_NAME, '[ae]', 'X', 1, 0, 'i')
FROM PRODUCTS;
제품 설명에서 처음 발생 cat
하거나 dog
pet
제품 설명으로 바꿉니다.
SELECT REGEXP_REPLACE(PRODUCT_DESCRIPTION, 'cat|dog', 'pet', 1, 1, 'i')
FROM PRODUCTS;
전화 번호의 마지막 4자리 숫자를 별표로 바꿉니다.
SELECT REGEXP_REPLACE(PHONE_NUMBER, '\d{4}$', '****')
FROM CUSTOMERS;