정규식 테스터 사용법
- 위쪽 프리셋을 고르면 이메일, 전화번호, URL, 날짜 같은 자주 쓰는 패턴과 예시 문장이 한 번에 채워져요. 직접 쓰려면 "직접 입력"을 두고 패턴 칸에 정규식을 적으세요.
- 플래그(g, i, m, s, u, y)를 체크해서 동작을 바꿔요. g는 모든 일치, i는 대소문자 무시예요. 폰에서는 칸 아래의 기호 버튼으로 \d, [ ], ( ) 같은 기호를 바로 넣을 수 있어요.
- 테스트할 문장을 입력하면 일치하는 부분이 노란색과 초록색으로 번갈아 칠해지고, 아래 표에 위치와 캡처 그룹 값이 나와요.
- 치환 문자열을 적으면 $1, $<이름> 같은 표기를 써서 바뀐 결과를 미리 볼 수 있어요. 오류가 있는 패턴은 빨간 안내로 이유를 알려 줘요.
실시간으로 안전하게 동작하는 방식
입력할 때마다 잠깐 기다린 뒤 브라우저의 자바스크립트 정규식 엔진으로 패턴을 실행해요. 일치한 글자는 문서에 HTML로 끼워 넣지 않고 글자 노드와 표시 요소를 따로 만들어 붙여서, 입력한 문장 속에 스크립트나 태그가 있어도 실행되지 않고 글자로만 보여요.
정규식은 계산이 폭발적으로 느려질 수 있어서 이 도구는 백그라운드 작업(Web Worker)에서 실행해요. 1.5초가 넘으면 작업을 중단하고 안내 문구를 보여 주기 때문에 페이지 전체가 멈추지 않아요. 일치 결과는 최대 1,000개까지만 모으고 표에는 처음 100개만 보여 줘서 아주 많은 결과에도 화면이 느려지지 않아요.
자주 쓰는 정규식 문법 정리
정규식은 입력 검증(이메일, 전화번호), 로그에서 특정 패턴 찾기, 텍스트 일괄 치환, 데이터 정리 같은 작업에서 많이 쓰여요. 편집기의 찾기·바꾸기에서 정규식 옵션을 켜면 여러 줄의 형식을 한 번에 바꿀 수도 있어요. 다만 읽기 어려운 정규식은 나중에 고치기 힘드니 설명을 함께 남기는 것이 좋아요.
문자 하나를 나타내는 기호로 .(줄바꿈을 뺀 모든 글자), \d(숫자), \w(영문자·숫자·밑줄), \s(공백)가 있고, [abc]는 이 중 하나, [^abc]는 이것들을 뺀 글자, [가-힣]은 한글 범위예요. 위치를 나타내는 ^는 줄이나 글의 시작, $는 끝, \b는 단어 경계예요.
반복은 *(0번 이상), +(1번 이상), ?(0번 또는 1번), {n,m}(n번에서 m번)으로 표현해요. 기본은 가능한 한 많이 잡는 탐욕적 방식이고 뒤에 ?를 붙이면(*?, +?) 최소한만 잡는 게으른 방식이 돼요. 괄호 ( )는 캡처 그룹, (?:...)는 캡처하지 않는 그룹, (?<이름>...)은 이름 있는 그룹이고, |는 또는을 뜻해요. (?=...)와 (?!...)는 뒤에 오는 글자를 미리 확인하는 룩어헤드예요.
플래그는 g(모든 일치), i(대소문자 무시), m(^와 $를 각 줄에 적용), s(.이 줄바꿈도 포함), u(유니코드 처리), y(현재 위치에서만 일치하는 sticky)가 있어요. 이메일이나 전화번호 같은 형식 검사는 프리셋을 출발점으로 삼되, 실제 서비스에서는 예외가 많으니 반드시 다양한 입력으로 테스트하세요.
잘 쓰는 요령
- 처음부터 복잡하게 쓰지 말고 짧은 패턴으로 시작해서 일치 결과를 보며 조금씩 늘려 가세요.
- .*처럼 모든 글자와 맞는 패턴은 의도보다 너무 길게 잡을 수 있어요. 필요하면 .*?나 [^"]*처럼 범위를 좁혀 보세요.
- 특수 문자(. * + ? ( ) [ ] { } | ^ $ \)를 글자 그대로 찾으려면 앞에 역슬래시(\)를 붙이세요.
- (a+)+나 (.*)*처럼 반복 안에 반복이 들어간 패턴은 피하세요. 입력이 길어지면 매우 느려져요.
- 개인정보를 검사하는 용도라면 테스트 문장에도 실제 개인정보를 넣지 말고 예시 값으로 확인하세요.
자주 묻는 질문
어떤 정규식 문법을 쓰나요?
이 브라우저의 자바스크립트(ECMAScript) 정규식 엔진을 그대로 사용해요. 그래서 파이썬, 자바, PCRE 같은 다른 엔진과 일부 문법(예: 소유 수량자, 일부 인라인 플래그)이 다를 수 있어요. 룩비하인드는 오래된 브라우저에서는 지원되지 않을 수 있어요.
"처리가 너무 오래 걸려 중단했어요"는 왜 나오나요?
(a+)+처럼 같은 문자를 중첩해서 반복하는 패턴은 일치하지 않는 글자를 만나면 가능한 모든 경로를 되돌아가며 시도해서 입력이 길어질수록 시간이 폭발적으로 늘어나요. 이를 치명적 역추적이라고 해요. 이 도구는 1.5초가 넘으면 작업을 중단해서 페이지가 멈추지 않게 해요.
g 플래그를 끄면 어떻게 되나요?
g를 끄면 첫 번째 일치만 찾아요. 치환도 첫 번째 일치에만 적용돼요. 모든 일치를 보려면 g를 켜 두세요.
치환 문자열에는 무엇을 쓸 수 있나요?
$1, $2처럼 캡처 그룹 번호, $<이름>으로 이름 있는 그룹, $&로 일치한 전체 글자를 쓸 수 있어요. 예를 들어 패턴 (\d{4})-(\d{2})에 치환 $2/$1을 쓰면 연-월이 월/연으로 바뀌어요.
입력한 텍스트가 외부로 전송되나요?
아니요. 모든 처리는 이 브라우저 안(백그라운드 작업 포함)에서만 이루어지고 서버로 전송되거나 저장되지 않아요.
주의사항
이 도구는 자바스크립트 정규식 엔진 기준의 학습·테스트용이며 다른 프로그래밍 언어의 정규식과 결과가 다를 수 있어요. 입력한 패턴과 문장은 서버로 전송되거나 저장되지 않아요. 프리셋 패턴은 예시일 뿐 모든 경우를 정확히 검증하지 않으니 실제 서비스에 쓰기 전에 충분히 테스트하세요. BTSPACE WAGLE은 비공식 정보 사이트입니다.