복잡한 정규식 한 조각씩 해석하기

남이 쓴 패턴을 기호별로 나눠 뜻을 확인한다

프롬프트 · 변수 2개

저는 정규식을 읽는 데 익숙하지 않습니다. 코드에서 만난 아래 패턴이 정확히 무엇을 통과시키고 무엇을 막는지 확인하려고 합니다.

정규식을 왼쪽부터 의미 단위로 잘라 단계별로 설명해 주세요. 전체 요약을 먼저 하지 말고, 조각을 하나씩 본 다음 마지막에 합쳐 주세요.

형식은 이렇게 해 주세요. 먼저 "조각 · 기호 이름 · 하는 일 · 이 조각이 없으면 무엇이 달라지는가" 표, 그다음 전체 뜻을 한 문장으로, 마지막으로 제가 준 대상 문자열이 각각 매치되는지와 어느 조각에서 통과하거나 걸리는지 적어 주세요.

패턴에 실제로 없는 기능은 설명에 넣지 마세요. 언어나 도구에 따라 동작이 달라지는 기호(룩비하인드, 유니코드 속성 등)가 섞여 있으면 그 줄에 표시해 주세요.

정규식: """ {{정규식}} """

대상 문자열: """ {{대상 문자열}} """

복사한 뒤 여기에 붙여 넣으세요 · ChatGPT·Claude는 프롬프트를 실은 채 열립니다 ChatGPT에서 열기 ↗Claude에서 열기 ↗Gemini에서 열기 ↗뤼튼에서 열기 ↗ 빌더에서 고치기 수업용 카드 이미지 받기

결과 예시

아직 실제 결과를 확인하지 않았습니다. 확인 후 예시가 채워집니다.

왜 이렇게 쓰는가

맥락
저는 정규식을 읽는 데 익숙하지 않습니다. 코드에서 만난 아래 패턴이 정확히 무엇을 통과시키고 무엇을 막는지 확인하려고 합니다.
단계
정규식을 왼쪽부터 의미 단위로 잘라 단계별로 설명해 주세요. 전체 요약을 먼저 하지 말고, 조각을 하나씩 본 다음 마지막에 합쳐 주세요.
형식
형식은 이렇게 해 주세요. 먼저 "조각 · 기호 이름 · 하는 일 · 이 조각이 없으면 무엇이 달라지는가" 표, 그다음 전체 뜻을 한 문장으로, 마지막으로 제가 준 대상 문자열이 각각 매치되는지와 어느 조각에서 통과하거나 걸리는지 적어 주세요.
제약
패턴에 실제로 없는 기능은 설명에 넣지 마세요. 언어나 도구에 따라 동작이 달라지는 기호(룩비하인드, 유니코드 속성 등)가 섞여 있으면 그 줄에 표시해 주세요.
입력 자료
정규식: """ {{정규식}} """
입력 자료
대상 문자열: """ {{대상 문자열}} """

정규식 해석을 부탁하면 대개 한 문장이 돌아옵니다. "비밀번호 형식을 검사하는 정규식입니다." 맞는 말이지만 이걸로는 아무것도 할 수 없습니다. 최소 길이를 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 · 잘못된 점이 있나요? 알려 주세요