정규 표현식 한눈에 보기
정규 표현식(Regular Expression)은 문자열이 어떤 규칙(패턴)에 맞는지 표현하는 문법입니다. 예를 들어 참조번호가 EV-2026-001처럼 'EV-, 숫자 4자리, -, 숫자 3자리'인지는 ^EV-[0-9]{4}-[0-9]{3}$ 한 줄로 검사합니다.
LIKE는 %(0개 이상 아무 문자)와 _(아무 문자 하나)만 쓰지만, 정규식은 ^·$·[0-9]·{n} 같은 메타문자로 훨씬 정밀하게 표현합니다. LIKE의 %와 정규식의 *는 뜻이 다릅니다. 정규식에서 '아무 문자 0개 이상'은 .*입니다.
| 비교 | LIKE | REGEXP |
|---|---|---|
| 표현력 | 약함 (단순 포함·시작·끝) | 강함 (형식·반복·선택까지) |
| 와일드카드 | % (0개 이상) · _ (한 글자) | . · * · + · [] · ^ · $ 등 다수 |
| 성능 | 빠름 | 일반적으로 조금 느림 |
| 쓰는 곳 | WHERE 열 LIKE 'A%' | WHERE REGEXP_LIKE(열, '^A') |
| 함수 | 하는 일 | 돌려주는 값 | 일치가 없으면 |
|---|---|---|---|
REGEXP_LIKE | 패턴에 맞는지 검사 | 조건(WHERE·CASE에서 사용) | 거짓 |
REGEXP_SUBSTR | 맞는 부분 추출 | 문자열 | NULL |
REGEXP_INSTR | 맞는 부분의 위치 | 숫자 (1부터 셈) | 0 |
REGEXP_REPLACE | 맞는 부분 치환 | 문자열 | 원본 그대로 |
REGEXP_COUNT | 맞는 부분 개수 | 숫자 | 0 |