본문 바로가기

IT/Database

SQL, 정규 표현식 패턴

1. 정규 표현식(Regular Expression, RegExr)

 

정규 표현식의 위키백과 설명입니다.

 

정규표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어입니다. 정규 표현식은 많은 텍스트 편집기와 프로그래밍 언어에서 문자열을 검색과 치환을 위해 지원하고 있습니다.

 

・따라서, 데이터베이스의 데이터에 정규 표현식을 사용하여 특정한 규칙을 가진 결괏값을 얻을 수 있습니다.

 

・ LIKE를 사용하여, 일정한 패턴의 결괏값을 얻을 수 있지만, 정규식을 이용하면, 더 다양하고 상세한 결괏값을 얻을 수 있습니다.

 

・ 간단한 LIKE문을 사용한 예제입니다.

 

SQL, LIKE 연산자

1. SQL(Structured Query Language) ・ 처음으로 SQL 언어에 대해서 포스팅하기 때문에, SQL의 위키백과를 설명을 보겠습니다. SQL은 구조화 질의어라고 하며, 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터..

itbellstone.tistory.com

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