결과 예시
아직 실제 결과를 확인하지 않았습니다. 확인 후 예시가 채워집니다.
왜 이렇게 쓰는가
정규식 해석을 부탁하면 대개 한 문장이 돌아옵니다. "비밀번호 형식을 검사하는 정규식입니다." 맞는 말이지만 이걸로는 아무것도 할 수 없습니다. 최소 길이를 8에서 10으로 바꾸고 싶어도 어느 숫자를 만져야 하는지 모르고, 특수문자가 왜 통과되지 않는지도 모릅니다.
그래서 이 프롬프트는 단계를 강제합니다. "왼쪽부터 의미 단위로 잘라 하나씩"과 "전체 요약을 먼저 하지 말고"라는 두 문장이 핵심입니다. 요약을 먼저 하게 두면 AI는 그 요약에 맞춰 나머지 설명을 끼워 맞추고, 패턴에 분명히 있는 조각을 건너뜁니다. 조각부터 보게 하면 룩어헤드처럼 눈에 잘 띄지 않는 부분도 표에 남습니다. 길이를 재는 중괄호와 문자 집합을 여는 대괄호가 어디서 짝을 이루는지도 이 과정에서 드러납니다.
형식에서 "이 조각이 없으면 무엇이 달라지는가" 열이 이 프롬프트의 중심입니다. 뜻만 적힌 표는 읽고 나면 잊히지만, 없앴을 때의 차이를 함께 보면 고칠 자리가 바로 보입니다. 대상 문자열의 매치 여부를 마지막에 확인하게 한 것도 같은 이유입니다. 설명이 맞는지 실제 값 몇 개로 검산하는 셈입니다.
정규식과 대상 문자열을 각각 """ 로 감싼 이유는 두 가지입니다. 정규식에는 따옴표·백슬래시·중괄호가 섞여 있어 그냥 붙이면 어디까지가 패턴인지 경계가 흐려집니다. 또 대상 문자열에 문장이 들어 있으면 AI가 그것을 지시로 읽을 수 있습니다. regex 읽는 법을 익히는 중이라면 표를 받은 뒤 조각 하나를 지워 보고 결과가 어떻게 달라지는지 직접 확인해 보세요.
용어가 낯설면 아하AI에서: chain-of-thought, prompt
나쁜 예와 비교
이 정규식 뭐하는 거야? ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d!@#$%^&*]{8,20}$
"영문과 숫자를 포함한 8~20자 비밀번호 검사용입니다" 한 줄이 돌아옵니다. 맞는 설명이지만 앞의 괄호 두 개가 왜 필요한지, {8,20} 이 무엇의 길이를 재는지는 여전히 모릅니다. 조건을 하나 바꾸려면 결국 처음부터 다시 물어야 합니다. 실제 값을 함께 주지 않았으니 설명이 맞는지 확인할 방법도 없습니다.
변형
되어야 할 값이 걸리지 않을 때
아래 정규식에 아래 값을 넣으면 매치되지 않습니다. 어느 조각에서 어떻게 어긋나는지 왼쪽부터 단계별로 짚어 주세요. 그다음 이 값까지 통과시키려면 어디를 어떻게 고쳐야 하는지 고친 패턴과 함께 알려 주고, 고친 패턴이 원래 막던 값까지 통과시키게 되는지도 적어 주세요.
정규식: """ {{정규식}} """
값: """ {{대상 문자열}} """
해석이 아니라 디버깅이 목적일 때 씁니다. 마지막 조건이 없으면 조건을 통째로 느슨하게 푼 패턴이 그대로 돌아옵니다.
코드에 남길 주석을 만들 때
아래 정규식을 코드에 남길 주석으로 정리해 주세요. 세 줄 이내로, 무엇을 통과시키고 무엇을 막는지와 대표 예시 두 개(통과 하나, 차단 하나)를 넣어 주세요. 기호 하나하나에 대한 설명은 넣지 마세요.
""" {{정규식}} """
다음에 이 코드를 볼 사람을 위한 형태입니다. 길면 아무도 읽지 않으므로 세 줄로 제한했습니다.
모델별 주의
정규식은 언어마다 지원하는 문법이 다릅니다. 어떤 언어나 도구에서 쓰는 패턴인지 첫 문단에 한 줄 덧붙이면 엉뚱한 문법 설명이 줄어듭니다
관련 프롬프트
마지막 수정 2026-09-02 · 잘못된 점이 있나요? 알려 주세요