외계어 같은 정규표현식(Regex), 한국어로 주문하세요
📝 외계어 같은 정규표현식(Regex), 한국어로 주문하세요
- 🎯 추천 대상: 정규식 짤 때마다 구글링만 30분 하는 개발자
- ⏱️ 소요 시간: 30분 → 10초 단축
- 🤖 추천 모델: 모든 대화형 AI (ChatGPT, Claude, Gemini 등)
“이메일 검증 정규식이 뭐였더라… 아, 전화번호 하이픈 넣는 건 또 어떻게 하지?”
정규표현식(Regular Expression), 쓸 때마다 새롭고 볼 때마다 외계어 같으시죠?
^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$… 이걸 직접 타이핑하는 건 고문입니다.
이제 한국어로 “이메일 형식 찾아줘”라고 말만 하세요.
⚡️ 3줄 요약 (TL;DR)
- 복잡한 패턴 매칭을 자연어로 요청
- 생성된 정규식에 대한 상세 설명 제공
- 테스트 케이스로 검증
🚀 해결책: “정규표현식 통역사”
아래 PROMPT 내용을 복사해서 사용하세요.
역할 (Role): 너는 정규표현식(Regex) 마스터야.
상황 (Context): 나는 텍스트 데이터에서 특정 패턴을 추출하거나 검증해야 해. 하지만 정규식 문법이 너무 어려워.
요청 (Task):
- 내가 설명하는 패턴에 딱 맞는 **정규표현식(Regex)**을 작성해줘.
- 작성된 정규식이 어떻게 동작하는지 부분별로 쪼개서 설명해줘.
- 이 정규식이 매칭되는 예시(Match)와 매칭되지 않는 예시(Non-match)를 각각 3개씩 보여줘.
찾고 싶은 패턴:
[여기에 원하는 패턴을 자연어로 설명하세요. 예: "010-1234-5678 형식의 휴대폰 번호"]사용 언어/환경:
[예: JavaScript / Python / Java]제약사항 (Constraints):
- 특수문자 이스케이프 처리를 확실하게 해줘.
- 가능한 간결하면서도 정확도가 높은 식을 만들어줘.
🧬 프롬프트 해부 (Why it works?)
이 프롬프트가 강력한 이유는 3가지 논리적 장치 때문입니다.
- 언어 환경 지정: JS, Python, Java 등 언어마다 미묘하게 다른 정규식 문법(Flavor)을 맞추기 위해 환경을 입력받습니다.
- 해설 요구: 그냥 답만 주는 게 아니라
/^/가 시작을 의미한다는 식으로 풀어서 설명해주어 학습 효과를 줍니다. - 검증용 예시: 매칭되는 것과 안 되는 것을 미리 보여줘서, 내가 원한 패턴이 맞는지 즉시 확인할 수 있습니다.
📊 증명: Before & After
❌ Before (입력)
패턴: “비밀번호는 8자 이상, 영문 대소문자, 숫자, 특수문자를 각각 하나 이상 포함해야 해.”
✅ After (결과)
정규표현식 (JavaScript):
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;설명:
^: 문자열의 시작(?=.*[a-z]): 적어도 하나의 소문자 포함(?=.*[A-Z]): 적어도 하나의 대문자 포함(?=.*\d): 적어도 하나의 숫자 포함{8,}: 8글자 이상
테스트:
- ✅
Pass1234!(매칭됨) - ❌
pass1234(특수문자/대문자 없음)
🚨 트러블 슈팅 (안 될 땐 이렇게!)
Q. 너무 엄격하게 검사해요. A. “좀 더 유연하게 허용해줘” 또는 “중간에 하이픈(-)이 있어도 되고 없어도 되게 해줘” 라고 조건을 완화하세요.
Q. 특정 그룹만 추출하고 싶어요. A. “전화번호에서 국번(010)을 제외한 나머지 숫자만 캡처 그룹으로 묶어줘” 라고 구체적으로 캡처링 그룹(Capturing Group)을 요청하세요.
🎯 결론
정규표현식은 강력하지만 인간이 읽기엔 너무 불친절합니다. 이제 그 복잡한 암호 해독은 AI에게 맡기고, 여러분은 텍스트 처리의 마법만 누리세요! 🍷