적용 대상: SQL Server 2025(17.x)
Microsoft Fabric에서Azure SQL Database
Azure SQL Managed Instance
SQL 데이터베이스 미리 보기
비고
미리 보기 기능으로, 이 문서에 제시된 기술에는 Microsoft Azure 미리 보기에 대한 보충 사용 약관이 적용됩니다.
정규식 패턴과 문자열을 일치시키는 캡처된 부분 문자열의 테이블을 반환합니다. 일치하는 항목이 없으면 함수는 행을 반환하지 않습니다.
REGEXP_MATCHES
(
string_expression,
pattern_expression [, flags ]
)
데이터베이스 호환성 수준 170이 필요합니다. 데이터베이스 호환성 수준을 설정하려면 ALTER DATABASE(Transact-SQL) 호환성 수준을 검토합니다.
주장들
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바이트입니다.
플래그
일치 항목을 검색하는 데 사용되는 한정자를 지정하는 하나 이상의 문자입니다. 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 ) |
반품
다음과 같이 테이블 형식 결과를 반환합니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
match_id |
bigint | 일치하는 단어의 시퀀스입니다. |
start_position |
int | 인덱스 위치 시작 |
end_position |
int | 끝 인덱스 위치입니다. |
match_value |
string_expression 와 같은 형식 |
일치 식입니다. |
substring_matches |
json | 일치 항목을 설명하는 JSON 문서입니다. |
예시
해당 시작부터 'Learning #AzureSQL #AzureSQLDB'
하나 이상의 영숫자 문자() 또는 밑줄(#
)이 오는 문자로 A-Z, a-z, 0-9
테이블 형식 결과를 반환합니다_
.
SELECT *
FROM REGEXP_MATCHES('Learning #AzureSQL #AzureSQLDB', '#([A-Za-z0-9_]+)');
match_id start_position end_position match_value substring_matches
1 10 18 #AzureSQL [{"value":"AzureSQL","start":11,"length":8}]
2 20 30 #AzureSQLDB [{"value":"AzureSQLDB","start":21,"length":10}]
문자로 시작하고 ABC
정확히 두 문자 뒤에 오는 일치하는 문자열에서 A
문자열을 반환합니다.
SELECT *
FROM REGEXP_MATCHES('ABC', '^(A)(..)$');
match_id start_position end_position match_value substring_matches
1 1 3 ABC [{"value":"A","start":1,"length":1},{"value":"BC","start":2,"length":2}]