본문 바로가기
카테고리 없음

MYSQL - REGEXP 특수문자 조회하기 (정규표현식 사용)

by 꿀코 2023. 3. 5.
반응형

MYSQL 정규표현식으로 특수문자 조회하기

 

MYSQL에서 데이터를 조회하다 보면 주소, 주민등록번호 등 특수문자나 패턴을 가지고 있는 데이터를 조회해야 하는 경우가 있습니다. REGEXP는 정규표현식을 활용하여 특정 패턴이나 특수문자 숫자가 들어간 데이터를 조회할 때 유용하게 사용할 수 있습니다.

 

 

REGEXP 정규표현식

정규표현식 REGULAR EXPRESSION이란 특정 규칙을 가진 문자열의 집합을 표현하는 형식입니다. 즉, 패턴 처리를 할 때 사용하는 규칙이라고 볼 수 있습니다.

 

표현식 기능 예시 설명
. 문자의 수 '.....' 문자열의 길이가 5글자 이상인 경우
| OR 조건 '사과|바나나' '사과' 또는 '바나나를' 포함하는 문자열
[] [] 안에 나열된 패턴과 일치하는 문자열 '[가나다]a' '가a' 또는 '나a' 또는 '다a'를 포함하는 문자열
^ 시작하는 문자열 '^사과' '사과'로 시작하는 문자열
$ 끝나는 문자열 '과일$' '과일'로 나는 문자열
* 0회 이상 나타나는 문자열 'a*' 'a'를 0번 이상 포함하는 문자열, 'a', 'aa', 'b' 모두 가능
+ 1회 이상 나타나는 문자열 'a+' 'a'를 1번 이상 포함하는 문자열, 'a', 'aa' 등
{m,n} m회 이상 n회 이하 반복되는 문자 '나{1,2}' '나'가 1회 이상 2회 이하 포함하는 문자열, '나라', '바나나' 등
? 0 ~ 1회 나타나는 문자 '[사과]?' '사' 또는 '과'를 0 ~ 1회 포함하는 문자열, '사랑', '과일' 등
[A-z] 또는 [:alpha:] 또는 \a 알파벳 대소문자 '[A-z]+' 대소문자 알파벳을 1개 이상 포함하는 문자열
[0-9] 또는 [:digit:] 또는 \d 숫자 '[0-9]+' 숫자를 1개 이상 포함하는 문자열
[^문자열] 문자열을 포함하지 않음 '[^꿀비]' '꿀' 또는 '비'를 포함하지 않는 문자열, '꿀벌', '꿀비' 등을 포함하면 제외

 

 

REGEXP 사용 방법

REGEXP를 사용하여 데이터를 조회하는 예시입니다.

 

1) 한글을 포함하는 경우

SELECT *
FROM TEST
WHERE CONTENT REGEXP '[가-힣]';

 

2) 휴대폰 번호 패턴 확인

SELECT *
FROM TEST
WHERE CONTENT REGEXP '^010-([0-9]{4})-([0-9]{4})$';

 

3) 이메일 주소 패턴 확인

SELECT *
FROM TEST
WHERE CONTENT REGEXP '^[A-z]([-_.]?[0-9A-z])*@([-_.]?[0-9A-z])*[.]+([A-z]{2,3})$';

 

4) 비밀번호 패턴 확인

길이 8 이상 12 이하, 대문자 1개 이상 포함, 특수문자 1개 이상 포함 알파벳으로 구성

SELECT *
FROM TEST
WHERE CONTENT REGEXP '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[@#$%!%*?&])[A-z0-9@#$%!%*?&]{8,12}$';

 

추가로 확인 필요한 패턴은 댓글로 문의 주시면 답변드리겠습니다.

반응형

댓글