정규식(Regex) 테스트 가이드
정규식(Regular Expression)은 텍스트에서 패턴을 찾고 검증하는 강력한 도구입니다. 이 가이드에서는 정규식 기초, 자주 쓰는 패턴, 온라인 테스터 활용법을 알아봅니다.
정규식이란?
정규식은 문자열에서 특정 패턴을 찾거나 검증할 때 사용하는 형식입니다. 이메일, 전화번호, URL 검증, 텍스트 치환 등 다양한 상황에서 활용됩니다.
정규식의 활용
- 검증: 이메일, 비밀번호, 날짜 형식 검증
- 검색: 로그 파일에서 특정 패턴 추출
- 치환: 일괄 텍스트 변환
- 파싱: 구조화된 데이터 추출
자주 쓰는 패턴 예시
1. 이메일 주소
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^: 문자열 시작[a-zA-Z0-9._%+-]+: 로컬 파트(한 글자 이상)@: @ 기호[a-zA-Z0-9.-]+: 도메인\.[a-zA-Z]{2,}$: 최상위 도메인(.com, .kr 등)
2. 전화번호 (한국)
^01[0-9]-?[0-9]{3,4}-?[0-9]{4}$
01[0-9]: 010, 011, 016 등-?: 하이픈 선택[0-9]{3,4}: 가운데 3~4자리[0-9]{4}: 마지막 4자리
3. URL
^https?:\/\/[^\s]+$
https?: http 또는 https:\/\/: ://[^\s]+: 공백 제외한 문자 1개 이상
4. 숫자만
^\d+$
\d: 숫자 한 자리+: 1개 이상^$: 전체 문자열 매칭
온라인 정규식 테스터 활용법
UnterGletscher 정규식 테스터
주요 기능:
- ✅ 실시간 매칭 결과 표시
- ✅ 그룹 캡처 확인
- ✅ 테스트 문자열 여러 줄 지원
- ✅ 회원가입 불필요
- ✅ 개인정보 수집 없음
사용 시나리오:
- 정규식 패턴 디버깅
- 검증 로직 사전 테스트
- 팀원과 패턴 공유
바로 사용하기: 정규식 테스터 사용하기
JavaScript vs Python 문법 차이
플래그
| JavaScript | Python | 설명 |
|---|---|---|
g | re.IGNORECASE | 대소문자 무시 |
i | re.MULTILINE | 여러 줄 모드 |
m | re.DOTALL | .이 줄바꿈 매칭 |
사용 예시
JavaScript:
const regex = /^[a-z]+@[a-z]+\.[a-z]{2,}$/i;
regex.test("test@example.com"); // true
Python:
import re
regex = re.compile(r'^[a-z]+@[a-z]+\.[a-z]{2,}$', re.IGNORECASE)
bool(regex.match("test@example.com")) # True
정규식 작성 팁
1. 단순한 것부터
복잡한 패턴은 작은 단위로 나누어 테스트하세요.
2. 엣지 케이스 고려
빈 문자열, 특수문자, 긴 입력 등 예외 상황을 테스트하세요.
3. 성능 주의
.*나 (.+)* 같은 패턴은 백트래킹으로 인해 느려질 수 있습니다.
마무리
정규식은 익히기 어렵지만, 익숙해지면 텍스트 처리 능력이 크게 향상됩니다. UnterGletscher의 무료 정규식 테스터로 패턴을 실험하고 검증해 보세요.