적용 대상: Microsoft Fabric의 SQL Server 2025(17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL 데이터베이스
정규식 패턴이 발견되는 대체 문자열로 대체된 수정된 소스 문자열을 반환합니다. 일치하는 항목이 없으면 함수는 원래 문자열을 반환합니다.
REGEXP_REPLACE
(
string_expression,
pattern_expression [ , string_replacement [ , start [ , occurrence [ , flags ] ] ] ]
)
Note
정규식은 SQL Server 2025 또는 Always-up-to-date업데이트 정책을 사용하여 Azure SQL Managed Instance에서 사용할 수 있습니다.
Arguments
string_expression
문자열의 식입니다.
문자열의 상수, 변수 또는 열일 수 있습니다.
데이터 형식: char, nchar, varchar 또는 nvarchar.
Note
, REGEXP_LIKE및 REGEXP_COUNT 함수는 REGEXP_INSTRstring_expression 매개 변수에 대해 LOB 형식(varchar(max) 및 nvarchar(max))을 최대 2MB까지 지원합니다.
pattern_expression
일치시킬 정규식 패턴입니다. 일반적으로 텍스트 리터럴입니다.
데이터 형식: 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')
Returns:
(123) 456-7890
제공된 \nstring_replacement 값이 pattern_expression 그룹 수보다 크면 함수는 이 값을 무시합니다.
다음은 그 예입니다.
REGEXP_REPLACE('123-456-7890', '(\d{3})-(\d{3})-(\d{4})', '(\1) (\4)-xxxx')
Returns:
(123) ()-xxxx
start
검색 문자열 내에서 검색의 시작 위치를 지정합니다. Optional. 유형이 int 또는 bigint입니다.
번호 매기기는 1부터 시작합니다. 즉, 식의 첫 번째 문자는 1 값이어야 합니다 >= 1. 시작 식이 보다 1작으면 오류를 반환합니다. 시작 식이 string_expression 길이보다 크면 함수는 string_expression 반환합니다. 기본값은 1입니다.
occurrence
검색하거나 바꿀 원본 문자열 내에서 패턴 식의 발생을 지정하는 식(양의 정수)입니다. 기본값은 1입니다.
string_expression 첫 번째 문자를 검색합니다. 양의 정n수의 경우 nth 첫 번째 발생 후 첫 번째 문자로 시작하는 항목을 검색 합니다.
flags
일치 항목을 검색하는 데 사용되는 한정자를 지정하는 하나 이상의 문자입니다. 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.
지원되는 플래그 값
| Flag | Description |
|---|---|
i |
대/소문자를 구분하지 않습니다(기본값 false) |
m |
여러 줄 모드: ^$ 시작/끝 텍스트 외에 시작/끝 선 일치(기본값 false) |
s |
일치 . 허용\n(기본값false) |
c |
대/소문자 구분(기본값 true) |
반환 값
Expression.
Examples
제품 이름의 모든 항목을 a 바꾸거나 eX 제품 이름으로 바꿉니다.
SELECT REGEXP_REPLACE(PRODUCT_NAME, '[ae]', 'X', 1, 0, 'i')
FROM PRODUCTS;
제품 설명에서 처음 발생 cat 하거나 dogpet 제품 설명으로 바꿉니다.
SELECT REGEXP_REPLACE(PRODUCT_DESCRIPTION, 'cat|dog', 'pet', 1, 1, 'i')
FROM PRODUCTS;
전화 번호의 마지막 4자리 숫자를 별표로 바꿉니다.
SELECT REGEXP_REPLACE(PHONE_NUMBER, '\d{4}$', '****')
FROM CUSTOMERS;