정규표현식은 특정 패턴을 가진 문자열을 검색하거나 추출, 교체할 때 사용하는 표현 방식입니다.
SQL에서는 주로 데이터를 검색하거나 필터링할 때 활용됩니다.
대표적으로 다음 함수가 사용됩니다.
REGEXP_LIKE
, REGEXP_INSTR
, REGEXP_SUBSTR
, REGEXP_REPLACE
REGEXP
, RLIKE
, REGEXP_LIKE
~
, ~*
, !~
, !~*
, regexp_matches
, regexp_replace
, regexp_split_to_table
데이터베이스 | 설명 및 예시 |
---|---|
Oracle | WHERE REGEXP_LIKE(column, '[A-Z]{3}[0-9]{3}') |
MySQL | WHERE column REGEXP '^[A-Za-z]+[0-9]+$' |
PostgreSQL | WHERE column ~* 'pattern' (대소문자 구분하지 않음) |
기호 | 설명 | 예시 | 매칭 결과 |
---|---|---|---|
^ | 문자열의 시작 지점 | ^A | A로 시작하는 문자열만 매칭 |
$ | 문자열의 끝 지점 | Z$ | Z로 끝나는 문자열만 매칭 |
. | 모든 단일 문자 (개행 제외) | a.b | aab , acb , adb 등 |
* | 앞의 문자 0회 이상 반복 | ab*c | ac , abc , abbc 등 |
+ | 앞의 문자 1회 이상 반복 | ab+c | abc , abbc 등 |
? | 앞의 문자가 없거나 한 번만 존재 | colou?r | color , colour |
\ | 특수문자를 일반 문자로 변환 (escape) | \. | 문자. 과 매칭 |
[ ] | 문자 집합 중 하나 | [abc] | a , b , 또는 c 와 매칭 |
[^ ] | 문자 집합이 아닌 문자 | [^abc] | a , b , c 제외 모든 문자 |
[a-z] | 문자 범위 지정 | [0-9] | 숫자 한자리 |
{n} | 정확히 n회 반복 | [0-9]{3} | 숫자 3자리 |
{n,m} | 최소 n회, 최대 m회 반복 | [A-Z]{2,4} | 대문자 2~4개 |
( ) | 그룹 지정 | (abc)+ | abc , abcabc , 등 |
` | ` | OR 조건 | `dog |
SELECT emp_name
FROM employee
WHERE REGEXP_LIKE(emp_id, '^[A-Z]{2}[0-9]{4}$');
-- 예) emp_id가 AB1234 형태
SELECT name
FROM user
WHERE email REGEXP '^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';
-- 예) 이메일 형태 검증
SELECT product_code
FROM product
WHERE product_code ~ '^PRD[0-9]{3}$';
-- 예) PRD로 시작하며 숫자 3자리로 끝나는 코드
^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^[0-9]{2,3}-[0-9]{3,4}-[0-9]{4}$
^[0-9]{6}-[1-4][0-9]{6}$
^[a-zA-Z]+[0-9]+$
^[가-힣]+$
이 자료를 참고하여 SQL에서 효과적인 데이터 필터링과 패턴 매칭 작업을 수행할 수 있습니다.
윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…
안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…
1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…
과적합은 머신러닝에서 학습용데이터를 과하게 학습하여, 실제데이터를 예측하지 못하는 현상을 말합니다. 인공지능(AI)의 학습 방법은 우리가 시험공부를…