다음을 통해 공유


정규식 미리 보기

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

이 문서에서는 SQL Server에 대한 정규식을 소개합니다.

비고

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

정규 표현식, 또는 regex,는 텍스트에 대한 검색 패턴을 정의하는 문자 시퀀스입니다. Regex는 패턴 일치, 데이터 유효성 검사, 데이터 변환 및 쿼리를 비롯한 다양한 작업에 일반적으로 사용됩니다. 복잡한 데이터 작업을 검색, 조작 및 처리하는 유연하고 효율적인 방법을 제공합니다.

비고

정규식은 Always-up-to-date 업데이트 정책으로 구성된 Azure SQL Managed Instance에서 사용할 수 있습니다.

정규식의 이 구현은 RE2 정규식 라이브러리를 기반으로 합니다. 자세한 내용은 RE2 정규식 구문을 참조하세요.

다음은 그 예입니다.

기능 설명
REGEXP_LIKE 텍스트 입력이 정규식 패턴과 일치하는지 여부를 나타내는 부울 값을 반환합니다.
REGEXP_REPLACE regex 패턴이 발견되는 대체 문자열로 대체된 수정된 소스 문자열을 반환합니다.
REGEXP_SUBSTR 정규식 패턴에 따라 문자열의 일부를 추출합니다.

regex 패턴과 일치하는 부분 문자열의 N번째 항목을 반환합니다.
REGEXP_INSTR 제공된 옵션에 따라 일치하는 부분 문자열의 시작 또는 끝 위치를 반환합니다.
REGEXP_COUNT 문자열에서 regex 패턴이 발생하는 횟수를 반환합니다.
REGEXP_MATCHES 정규식 패턴과 문자열을 일치시키는 캡처된 부분 문자열의 테이블을 반환합니다. 일치하는 항목이 없으면 함수는 행을 반환하지 않습니다.
REGEXP_SPLIT_TO_TABLE regex 패턴으로 구분된 문자열 분할 테이블을 반환합니다. 패턴과 일치하지 않으면 함수는 문자열을 반환합니다.

정규식은 특별한 의미와 함수가 있는 리터럴 문자와 메타 문자로 구성될 수 있습니다.

간단한 정규식은 단일 리터럴 문자입니다. 문자는 메타 문자를 제외하고 자체와 일치합니다. 메타 문자에는 *, +, ?, ()또는 |. 메타 문자를 일치시키려면 백슬래시를 사용하여 이스케이프 처리하세요. 예를 들어 \* 리터럴 별표(*) 문자와 일치합니다.

허용되는 정규식 문자

단일 문자 식

단일 문자 표현의 종류 예시
모든 문자, 줄 바꿈(s=true)을 포함할 수 있습니다. .
문자 클래스 [xyz]
부정 문자 클래스 [^xyz]
Perl 문자 클래스 \d
부정된 Perl 문자 클래스 \D
ASCII 문자 클래스 [[:alpha:]]
부정된 ASCII 문자 클래스 [[:^alpha:]]
유니코드 문자 클래스(한 글자 이름) \pN
유니코드 문자 클래스 \p{Greek}
부정된 유니코드 문자 클래스(한 글자 이름) \PN
부정된 유니코드 문자 클래스 \P{Greek}

Perl 문자 클래스

다음 표에서는 현재 지원되는 Perl 문자 클래스를 나열합니다.

Perl 문자 클래스(모든 ASCII 전용) 설명
\d 숫자 ([0-9])
\D 숫자가 아님 ( [^0-9])
\s 공백 ( [\t\n\f\r ])
\S 공백 아님( [^\t\n\f\r ])
\w 단어 문자( [0-9A-Za-z_])
\W 단어에 포함되지 않는 문자( [^0-9A-Za-z_])

ASCII 문자 클래스

다음 표에서는 현재 지원되는 ASCII 문자 클래스를 나열합니다.

ASCII 문자 클래스 설명
[[:alnum:]] 영숫자( [0-9A-Za-z])
[[:alpha:]] 알파벳( [A-Za-z])
[[:ascii:]] ASCII ( [\x00-\x7F])
[[:blank:]] 빈칸 ( [\t ])
[[:cntrl:]] 제어 ( [\x00-\x1F\x7F])
[[:digit:]] 숫자 ([0-9])
[[:graph:]] 그래픽( [!-~] 또는 [A-Za-z0-9!“#$%&’()*+,\-./:;<=>?@[\\\]^_`{|}~])
[[:lower:]] 소문자( [a-z])
[[:print:]] 인쇄 가능( [ -~] 또는 [ [:graph:]])
[[:punct:]] 문장 부호([!-/:-@[-\``{-~])
[[:space:]] 공백 ( [\t\n\v\f\r ])
[[:upper:]] 대문자( [A-Z])
[[:word:]] 단어 문자( [0-9A-Za-z_])
[[:xdigit:]] 16진수( [0-9A-Fa-f])

리터럴 문자

  • 편지
  • 숫자
  • 기호

메타 문자

  • *는 이전 문자가 0번 이상 반복되는지 확인합니다.
  • ^ 줄의 시작 부분과 일치

그룹화

다음을 사용하여 패턴의 일부를 그룹화하고 캡처합니다.

  • 괄호 ( )
  • 대괄호 [ ]
  • 중괄호 { }

플래그

플래그를 사용하여 식 동작을 수정합니다. 다음은 그 예입니다.

  • i
  • m
  • s
  • c

이 구현은 RE2에 따른 정규식의 POSIX 표준을 지원하며, 대부분의 최신 정규식 엔진 및 도구와 호환되는 정규식 구문의 PCRE/PCRE2 버전을 지원합니다. 구문과 기능이 다른 POSIX, ANSI, Perl 및 PCRE와 같은 다양한 정규식 버전이 있습니다.

요구 사항

  • Azure Data Studio, SQL Server Management Studio 또는 Visual Studio Code와 같은 SQL 클라이언트 도구입니다.
  • SQL 구문 및 쿼리에 대한 기본 지식입니다.
  • 정규식 구문 및 개념에 대한 기본적인 이해입니다.

자주 묻는 질문(FAQ)

regex 사용의 성능 영향은 무엇인가요?

Regex 쿼리는 regex 패턴의 복잡성, 텍스트 데이터의 크기 및 관련된 행 수에 따라 성능에 영향을 줄 수 있습니다. 실행 계획 및 통계를 사용하여 regex 쿼리의 성능을 모니터링하고 최적화할 수 있습니다.

알려진 문제, 동작 및 제한 사항

다음은 현재 이 미리 보기에서 지원되지 않는 항목입니다.

  • LOB 데이터 형식(varchar(max) 또는 nvarchar(max))string_expressions
  • 정규식 함수는 메모리 최적화 OLTP 테이블에서 지원되지 않습니다.