1. 정규 표현식(Regular Expression, RegExr)
・ 정규 표현식의 위키백과 설명입니다.
정규표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어입니다. 정규 표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열을 검색과 치환을 위해 지원하고 있습니다.
・따라서, 데이터베이스의 데이터에 정규 표현식을 사용하여 특정한 규칙을 가진 결괏값을 얻을 수 있습니다.
・ LIKE를 사용하여, 일정한 패턴의 결괏값을 얻을 수 있지만, 정규식을 이용하면, 더 다양하고 상세한 결괏값을 얻을 수 있습니다.
・ 간단한 LIKE문을 사용한 예제입니다.
2. 정규 표현식 문법
・ 정규 표현식 기본 구문은 /(패턴 구분자)로 시작하여 패턴 그리고 다시 /(패턴 구분자)로 끝납니다.
・ 위키백과에 상세하게 정리되어 있습니다. 자주 사용되는 문법을 정리해보면 아래와 같습니다.
Operator | Description |
* | 해당 문자의 패턴이 가 0개 이상 일치할 경우 |
+ | 해당 문자의 패턴이 가 1개 이상 일치할 경우 |
? | 앞 문자가 0개이거나 하나 일치할 경우 |
| | OR를 사용하기 위한 연산자 |
^ | 문자열이 시작할 경우 |
$ | 문자열이 끝날 경우 |
. | NULL을 제외한 임의의 한 문자 |
[] | 임의의 그룹, [] 안에서의 ^는 일치하지 않음을 의미 |
[1-9] 또는 [a-z]로 범위를 표현 | |
{n} | 3번만큼 일치시킴 |
{n,} | 적어도 n번 이상만큼 일치시킴 |
{n, m} | n번 이상일치시키되 m을 초과하지 않음 |
3. 자주 사용하는 정규 표현식
・ 숫자만 허용하는 정규 표현식
^[0-9]*$
・ 영어만 허용하는 정규 표현식
^[a-zA-Z]*$
・ 영어 대문자만 허용하는 정규 표현식 / 영어 소문자만 허용하는 정규 표현식
^[A-Z]+$
^[a-z]+$
・ 영어와 숫자만 허용하는 정규 표현식
^[A-Za-z0-9]+$
・ 이메일 형식
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
・ 도메인 체크 형식
^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$
・ 인터넷 URL 체크 형식
^(http|https)://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
・ 비밀번호 대문자, 영어, 숫자 조합(길이는 10 이상 20) 이하의 경우
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{10,20}$
・ IP 어드레스
((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
3. 오라클
・ Oracle 10 이상부터는 REGEXP_로 시작하는 함수를 시작하여, 정규 표현식을 이용하는 방법도 있습니다.
SQL | Description |
REGEXP_LIKE(열 이름, 조건) | 정규 표현식을 사용하여 조건 검색을 실행 |
REGEXP_REPLACE(문자열 또는 열 이름, 조건, 치환 문자열) | 지정한 정규 표현식에 일치하는 부분을 지정한 다른 문자열로 치환함 |
REGEXP_INSTR(문자열 또는 열 이름, 조건) | 지정한 조건(정규 표현식)에 일치하는 부분의 최초의 위치를 반환함. |
REGEXP_SUBSTR(문자열 또는 열 이름, 조건) | 지정된 정규 표현식에 일치하는 부분 문자열을 찾아 결과로 리턴 |
・ 그럼 끝!
'IT > Database' 카테고리의 다른 글
SQLite, .mode 커맨드를 이용한 데이터 확인 (0) | 2019.06.03 |
---|---|
DBeaver, GUI로 DB 관리하기! (0) | 2019.05.30 |
SQL, LIKE 연산자 (0) | 2019.05.22 |