RDBS/MYSQL

[MYSQL]REGEXP(정규 표현식) : 특정 문자열 처리

MoonSta 2023. 1. 13. 17:04

정규 표현식(Regular Expression)

 프로그래밍 언어에서 정규 표현식은 문자열을 처리하는 방법 중의 하나로 특정한 패턴의 문자를 '검색'하거나 '치환'하는 과정을 간편하게 처리해주는 형식 언어이다. 이번 포스팅에서는 MySQL의 정규표현식과 정규식을 사용한 데이터 검색에 대해 알아보겠습니다.

 

정규 표현식(Regular Expression) -  MySQL문법

패턴  의미
. 문자 한 개
^ 문자열의 처음
$ 문자열의 끝
* 앞에 나온 문자의 n개 이상 반복
[] 괄호 안에 문자열 일치
{} 반복
| 또는
[A-z], [:alpha:] 대,소문자열을 찾음
[0-9], [:digit:] 숫자인 문자열 찾음
[^패턴] 임의의 패턴이 아닌 것을 찾음

 위의 패턴들은 정규식에 자주 등장하는 패턴이다. 물론 이외에도 더 많은 패턴이 있지만 학습을 위해 따로 찾아보시는 게 좋을 것 같습니다.

 

정규 표현식(Regular Expression) -  MySQL예제

 위와 같은 패턴과 정규식을 잘 사용하면 다양한 부분에 있어서 요긴하게 사용할 수 있습니다. 다양한 예제를 통해 한번 알아보도록 하겠습니다.

-- 데이터 중에 (문 OR 스 OR 타)가 포함되어있는 데이터를 찾을 때
SELECT DATA
  FROM TABLE
 WHERE DATA REGEXP '문|스|타';
 
 -- 데이터 중에 (문스타 OR 티스토리)로 시작하는 데이터를 찾을 때
 SELECT DATA
  FROM TABLE 
 WHERE DATA REGEXP '^문스타|^티스토리';
 
 -- . -> 문자 한 개를 의미
 -- 데이터 중에 7자리이고 3번째 문자열에 '문'이 포함된 데이터를 찾을 때
 SELECT DATA
   FROM TABLE
  WHERE DATA REGEXP ('^..문....$');
  
  -- 데이터 중에 한글이 포함된 모든 데이터를 찾을 때
  SELECT DATA
    FROM TABLE
   WHERE DATA REGEXP '[가-힣]'

정규 표현식(Regular Expression)에 대해 알아보고 간단한 예제를 하며 이해해 보았습니다. 사실 실무에선 이것보다 더 복잡한 패턴을 사용해야 하는 경우가 많다. 정규식에 더 공부하고 패턴을 파악해서 적재적소에 사용할 수 있도록 공부하시면 좋을 것 같습니다. 감사합니다.