적용 대상: Microsoft Fabric의 SQL Server 2025(17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL 데이터베이스
정규 표현식 패턴과 문자열이 일치하는 캡처된 부분 문자열 테이블을 반환합니다. 일치하는 항목이 없으면 함수는 행을 반환하지 않습니다.
REGEXP_MATCHES
(
string_expression,
pattern_expression [ , flags ]
)
데이터베이스 호환성 수준 170이 필요합니다. 데이터베이스 호환성 수준을 설정하려면 ALTER DATABASE(Transact-SQL) 호환성 수준을 검토합니다.
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바이트입니다.
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) |
Returns
다음과 같이 테이블 형식 결과를 반환합니다.
| 열 이름 | 데이터 형식 | Description |
|---|---|---|
match_id |
bigint | 일치하는 단어의 시퀀스입니다. |
start_position |
int | 인덱스 위치 시작 |
end_position |
int | 끝 인덱스 위치입니다. |
match_value |
string_expression와 같은 형식 |
일치 식입니다. |
substring_matches |
json | 일치 항목을 설명하는 JSON 문서입니다. |
Examples
해당 시작부터 '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}]