텍스트 · 2026년 7월 25일 · 읽는 시간 4분
정규식 짤 때마다 스택오버플로 뒤지다가 만든 정규식 생성 도우미
이메일 유효성 검사 정규식 하나 찾으러 갔다가 30분 만에 스택오버플로 탭이 12개 열려 있던 적 있음.
언제 필요한지
정규식이 필요한 상황은 생각보다 자주 온다:
- 이메일 유효성 검사 → 입력값에 @가 있는지, 도메인 형식이 맞는지
- 전화번호 패턴 → 010-XXXX-XXXX, 02-XXX-XXXX 등 다양한 형식 처리
- URL 추출 → 긴 텍스트에서 링크만 골라낼 때
- 특수문자 제거 → 사용자 입력에서 허용된 문자만 남기기
- 날짜 형식 파싱 → YYYY-MM-DD, DD/MM/YYYY 등 혼재된 형식 처리
- 패스워드 정책 → 영문+숫자+특수문자 조합 필수 검증
- 로그 파싱 → 서버 로그에서 특정 패턴 추출
- HTML 태그 제거 → 텍스트만 남기고 마크업 제거
- 코드에서 패턴 치환 → VSCode 찾기/바꾸기에서 정규식 모드 활용
정규식을 "알 것 같은데 막상 쓰려면 헷갈리는" 상태로 알고 있는 개발자가 진짜 많음. 기본 패턴은 알아도 플래그, 그룹, 룩어헤드 같은 거 조합하다 보면 항상 막히는 부분이 생김.
기존 방법의 문제
- 스택오버플로 검색 → 내 상황에 딱 맞는 답변 찾기가 어렵고, 답변마다 패턴이 달라서 어떤 게 맞는지 모름
- ChatGPT한테 물어보기 → 정규식 설명은 해주는데 실제로 테스트해봐야 함, 틀리는 경우도 있음
- regex101.com → 좋긴 한데 영어라서 처음엔 UI 파악하는 데 시간 걸림
- 직접 짜기 → 오랜만에 쓰면 `\d`, `\w`, `+`, `*`, `?` 차이 매번 헷갈림
- MDN 문서 → 레퍼런스 위주라 "이메일 검증 정규식 뭐야"에 바로 답 안 나옴
- 복붙한 정규식이 뭘 하는지 모름 → 나중에 수정해야 할 때 손댈 수가 없음
제일 큰 문제는 "복붙은 했는데 이게 왜 동작하는지 모른다"는 상황. 엣지케이스 생기면 손댈 수가 없어짐.
그래서 직접 만들었음
만들고 싶은 패턴 설명하면 정규식 만들어주고, 바로 테스트까지 되게.
생성 기능:
- 자주 쓰는 패턴 템플릿 → 이메일, URL, 전화번호, 날짜, 비밀번호 등 버튼 클릭 한 번
- 자연어로 설명 → "숫자만 허용" 입력하면 정규식 생성
- 옵션 조합 → 대소문자 구분 여부, 전체 매칭 vs 부분 매칭 등 체크박스로 설정
- 플래그 설정 → g, i, m, s 플래그 선택 가능
테스트 기능:
- 실시간 매칭 확인 → 테스트 문자열 입력하면 매칭 결과 즉시 표시
- 매칭 하이라이트 → 어느 부분이 걸렸는지 색상으로 표시
- 그룹 캡처 결과 → 캡처 그룹별로 뭐가 잡혔는지 확인
- 여러 케이스 테스트 → 유효/무효 입력 예시 여러 개 한 번에 확인
설명 기능:
- 패턴 분해 설명 → 각 문자/기호가 뭘 의미하는지 한글로 설명
- 언어별 코드 스니펫 → JavaScript, Python, Java 등에서 쓰는 코드 형태로 출력
- 복사 → 한 번에 클립보드 복사
실제로 써보니
좋은 점:
- 실시간 테스트 → 짜면서 바로 결과 확인 가능, 스택오버플로 탭 열 필요 없음
- 패턴 설명 → 복붙해도 뭘 하는지 알 수 있음, 나중에 수정도 됨
- 템플릿 → 자주 쓰는 패턴은 버튼 하나로 끝남
- 한글 설명 → 영어 문서 읽다 막히는 거 없음
한계:
- 복잡한 룩어헤드/룩비하인드 조합 → 고급 패턴은 직접 작성 필요
- 언어별 차이 → 언어마다 지원 문법이 조금 다른데 다 커버하진 않음
- 정규식 이력 저장 없음 → 작성한 패턴 저장해두는 기능 없음
정규식 기호 빠른 참고
매번 헷갈리는 것들 요약:
.→ 임의의 문자 한 개 (줄바꿈 제외)*→ 앞 문자 0번 이상 반복+→ 앞 문자 1번 이상 반복?→ 앞 문자 0번 또는 1번 (선택적)\d→ 숫자 [0-9]\w→ 단어 문자 [a-zA-Z0-9_]\s→ 공백 문자 (스페이스, 탭, 줄바꿈)^→ 문자열 시작 (또는 문자 클래스 안에서 부정)$→ 문자열 끝()→ 캡처 그룹[]→ 문자 클래스 (그 안의 문자 중 하나){n,m}→ n번 이상 m번 이하 반복
이거 외워도 막상 조합하려면 헷갈림. 그래서 테스트 도구가 필요한 거임.
자주 쓰는 패턴 모음
이런 패턴들은 외우기보다 그냥 복붙해서 씀:
- 이메일:
^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$ - 한국 휴대폰:
^01[016789]-?\d{3,4}-?\d{4}$ - URL:
https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&\/=]*) - 날짜 (YYYY-MM-DD):
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ - 숫자만:
^\d+$ - 한글만:
^[가-힣]+$
복붙했는데 왜 동작하는지 궁금하면 도구에 붙여넣고 설명 기능 써보면 됨.
사용법
- 템플릿 선택 or 자연어로 패턴 설명 입력
- 생성된 정규식 확인
- 테스트 입력창에 샘플 텍스트 입력
- 매칭 결과 확인 (하이라이트로 표시)
- 원하는 언어의 코드 스니펫으로 복사
한 번 익히면 스택오버플로 탭 열 일이 반 이하로 줄어든다.
써보기
다음에 이메일 유효성 정규식 찾으러 스택오버플로 가기 전에 한번 써봐. 템플릿에 다 있음.
#정규식생성기 #regex #정규표현식 #개발도구 #유효성검사 #패턴매칭 #자바스크립트정규식