정규식이란?
💡 다음을 사용하여 정규식 지정
- 메타문자 : 검색 알고리즘을 지정하는 연산자
- 리터럴 : 검색 중인 문자
- 정규식에서 표준 구문 규칙을 사용하여 문자열 데이터의 간단한 패턴 및 복잡한 패턴을 검색하고 조작 가능
- SQL 함수 및 조건 집합을 사용하여 SQL 및 PL/SQL에서 문자열을 검색하고 조작 가능
정규식 사용 시 이점
💡 정규식을 사용하여 데이터베이스에서 복잡한 일치 논리를 구현하면 다음과 같은 이점 발생
- 오라클 데이터베이스에서 일치 논리를 중앙화함으로써 middle-tier 응용 프로그램에 의한 SQL 결과 집합의 집중적인 문자열 처리 방지
- 서버 측 정규식을 사용하여 제약 조건을 적용함으로써 클라이언트에서 데이터 검증 논리 코드를 작성할 필요 X
- 내장 SQL 및 PL/SQL 정규식 함수와 조건을 사용하여 Oracle Datebase 11g의 이전 릴리스보다 더욱 쉽고 강력하게 문자열 조작 가능
메타 문자란?
💡 대체 문자, 반복 문자, 일치하지 않는 문자 또는 일련의 문자와 같이 특별한 의미를 지닌 특수 문자
- 패턴 일치에서 여러 가지 미리 정의된 메타 문자 기호 사용 가능
- 예를 들어, ^(f|ht)tps?:$ 정규식은 문자열 시작 부분에서 다음을 검색함
- 리터럴 f 또는 ht
- t 리터럴
- p 리터럴 (선택적으로 다음에 s 리터럴이 나옴)
- 문자열 끝부분의 “:” 리터럴
정규식에서 메타 문자 사용
구문 | 설명 |
. | 지원되는 character set에서 NULL을 제외한 임의의 문자와 일치 |
+ | 한 번 이상 발생 수 일치 |
? | 0번 또는 한 번 발생 수 일치 |
* | 선행 하위식의 0번 이상 발생 수 일치 |
{m} | 선행 하위식의 정확히 m번 발생 수 일치 |
{m,} | 선행 하위식의 정확히 m번 이상 발생 수 일치 |
{m,n} | 선행 하위식과 최소 m번 이상, 최대 n번 이하 발생 수 일치 |
[…] | 괄호 안의 리스트에 있는 임의의 단일 문자와 일치 |
| | 여러 대안 중 하나와 일치 |
( … ) | 괄호로 묶인 표현식을 한 단위로 취급함 하위식은 리터럴의 문자열이나 연산자를 포함한 복잡한 표현식이 될 수 있음 |
정규식에서 메타 문자 사용
구문 | 설명 |
^ | 문자열 시작 부분과 일치 |
$ | 문자열 끝부분과 일치 |
\ | 표현식에서 후속 메타 문자를 리터럴로 처리 |
\n | 괄호 안에 그룹화된 n번째 선행 하위식과 일치 |
\d | 숫자 문자 |
[:class:] | 지적된 POSIX 문자 클래스에 속한 임의의 문자와 일치 |
[^:class:] | 괄호 안의 리스트에 없는 임의의 단일 문자와 일 |
n번째 하위식에 액세스하는 이유
- 더욱 실제적인 사용 : DNA 시퀀싱
- 쥐의 DNA에서 면역에 필요한 단백질을 식별하는 특정 하위 패턴을 찾음
'SQL' 카테고리의 다른 글
MySQL 서버 설치 (1) | 2024.01.24 |
---|---|
SQL 작성 가이드 (2) | 2024.01.23 |
데이터 검색 (1) | 2024.01.05 |
데이터 관리 (1) | 2024.01.05 |
대형 데이터 (1) | 2024.01.05 |