다음을 통해 공유


REGEXP_INSTR(Transact-SQL) 미리 보기

적용 대상: SQL Server 2025(17.x)Microsoft Fabric에서Azure SQL DatabaseAzure SQL Managed Instance SQL 데이터베이스 미리 보기

비고

미리 보기 기능으로, 이 문서에 제시된 기술에는 Microsoft Azure 미리 보기에 대한 보충 사용 약관이 적용됩니다.

인수 값 return_option 에 따라 일치하는 부분 문자열의 시작 또는 끝 위치를 반환합니다.

REGEXP_INSTR
     (
      string_expression,
      pattern_expression
         [, start [, occurrence [, return_option [, flags [, group ] ] ] ] ]
     )

주장들

string_expression

문자열의 식입니다.

문자열의 상수, 변수 또는 열일 수 있습니다.

데이터 형식: char, nchar, varchar 또는 nvarchar.

비고

, REGEXP_LIKEREGEXP_COUNT 함수는 REGEXP_INSTRstring_expression 매개 변수에 대해 LOB 형식(varchar(max)nvarchar(max))을 최대 2MB까지 지원합니다.

패턴_표현식

일치시킬 정규식 패턴입니다. 일반적으로 텍스트 리터럴입니다.

데이터 형식: char, nchar, varchar 또는 nvarchar. pattern_expression 최대 문자 길이는 8,000바이트입니다.

start

검색 문자열 내에서 검색의 시작 위치를 지정합니다. 선택 사항입니다. 유형이 int 또는 bigint입니다.

번호 매기기는 1부터 시작합니다. 즉, 식의 첫 번째 문자는 1 값이어야 합니다 >= 1. 시작 식이 보다 1작으면 오류를 반환합니다. 시작 식이 string_expression 길이보다 크면 함수가 반환됩니다 0. 기본값은 1입니다.

발생

검색하거나 바꿀 원본 문자열 내에서 패턴 식의 발생을 지정하는 식(양의 정수)입니다. 기본값은 1입니다. string_expression 첫 번째 문자를 검색합니다. 양의 정n수의 경우 nth 첫 번째 발생 후 첫 번째 문자로 시작하는 항목을 검색 합니다.

return_option

일치하는 부분 문자열의 시작 위치 또는 끝 위치를 반환할지 여부를 지정합니다. 시작 및 0 끝 부분에 사용합니다1. 기본값은 0입니다. 쿼리는 다른 값에 대한 오류를 반환합니다.

일치 항목을 검색하는 데 사용되는 한정자를 지정하는 하나 이상의 문자입니다. 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)

그룹

반환할 subexpression 내의 위치를 결정하는 pattern_expression 캡처 그룹()을 지정합니다. 그룹은 괄호로 묶인 패턴 조각이며 중첩될 수 있습니다. 그룹은 왼쪽 괄호가 패턴으로 표시되는 순서대로 번호가 매겨집니다. 값은 정수이며 >= 0 그룹 수보다 커야 하며 해서는 안 됩니다. 기본값은 0위치가 전체 pattern_expression 일치하는 문자열을 기반으로 했음을 나타내는 입니다.

값이 pattern_expression 그룹 수보다 크면 함수가 반환됩니다 0.

반환 값

정수.

예시

열에 숫자만 포함된 첫 번째 부분 문자열의 PRODUCT_DESCRIPTION 위치를 찾습니다.

SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, '\d+')
FROM PRODUCTS;

열에서 세 번째 문자 a (대/소문자를 구분하지 않는) PRODUCT_NAME 의 위치를 찾습니다.

SELECT REGEXP_INSTR(PRODUCT_NAME, 'a', 1, 3, 0, 'i')
FROM PRODUCTS;

열에서 (대/소문자 구분)t으로 ePRODUCT_DESCRIPTION 시작하고 끝나는 첫 번째 부분 문자열의 끝 위치를 찾습니다.

SELECT REGEXP_INSTR(PRODUCT_DESCRIPTION, 't.*?e', 1, 1, 1)
FROM PRODUCTS;