Skip to content
정규식 테스터
Tools

정규식 테스터

신규

실시간 일치 하이라이트, 캡처 그룹, 치환 미리보기로 정규 표현식을 테스트하세요.

/ /
0 matches

Match highlight

 

Matches & groups

Replace

 
Regex cheatsheetquick reference
\d \D
digit / non-digit
\w \W
word char / non-word char
\s \S
whitespace / non-whitespace
.
any char (except newline without s flag)
^ $
start / end of string (line with m flag)
\b \B
word boundary / non-boundary
[abc] [^abc]
char set / negated set
[a-z0-9]
char range
a* a+ a?
0+ / 1+ / 0 or 1
a{3} a{2,5} a{2,}
exactly 3 / 2–5 / 2 or more
a*? a+?
lazy (non-greedy) quantifiers
(abc)
capture group → $1
(?<name>abc)
named group → $<name>
(?:abc)
non-capturing group
a|b
alternation (a or b)
\1 \k<name>
backreference
(?=abc) (?!abc)
lookahead / negative lookahead
(?<=abc) (?<!abc)
lookbehind / negative lookbehind
\n \t \r
newline / tab / carriage return
\. \* \\
escaped literal . * \

Runs entirely in your browser. Nothing is uploaded.

실시간으로 정규식을 테스트 — 실제 JavaScript 엔진으로

이 무료 정규식 테스터는 입력하는 즉시 모든 매치를 하이라이트로 표시합니다. 브라우저의 진짜 JavaScript 정규식 엔진을 사용하기 때문에, 여기서 매치된 결과는 프론트엔드 코드나 Node.js에서 나오는 결과와 완전히 동일합니다. 6가지 플래그(g, i, m, s, u, y)를 자유롭게 토글할 수 있으며, 잘못된 패턴이 입력되면 엔진의 실제 오류 메시지가 표시되어 무엇이 문제인지 바로 알 수 있습니다.

실시간 하이라이트 아래에는 전체 매치 목록이 표시됩니다. 각 매치의 위치와 함께 번호 및 이름이 붙은 모든 캡처 그룹 값을 확인할 수 있습니다. 치환 패널에서는 입력하는 동시에 $1, $<name>, $& 역참조를 활용한 치환 결과를 미리 볼 수 있습니다. 패턴이 완성되면 JavaScript 코드로 복사 버튼을 눌러 바로 붙여넣기 가능한 코드를 가져가세요.

regex101.com, regexr.com의 가볍고 집중된 대안

regex101.com은 PCRE, Python, Golang, .NET 등 다양한 엔진을 지원하는 강력한 도구이지만, JavaScript 패턴 하나를 빠르게 디버깅하기에는 불필요한 기능이 너무 많습니다. regexr.com은 커뮤니티 패턴과 레퍼런스를 제공하지만, 매치 결과에서 치환 미리보기로 이동하려면 여러 탭을 거쳐야 합니다.

온라인 정규식 테스터는 개발자가 매일 가장 많이 필요로 하는 세 가지 질문에 하나의 화면으로 답합니다. 매치되는가, 무엇을 캡처했는가, 치환하면 어떻게 되는가? 엔진 선택도 없고, 계정도 필요 없으며, 파일 업로드도 없습니다. 하이라이트만 보여주는 regexpal.com이나 시각적 철도 다이어그램에 집중하는 debuggex.com과 달리, 이 도구는 매치별 캡처 그룹 추출과 역참조를 지원하는 실시간 치환 미리보기를 함께 제공합니다.

자주 쓰는 정규식 패턴, 클릭 한 번으로

내장 패턴 라이브러리에는 실무에서 검증된 패턴과 실제적인 예시 텍스트가 포함되어 있습니다. 이메일 주소, URL, IPv4 주소, ISO 날짜, 24시간제 시각, 16진수 색상, URL 슬러그, 국제 전화번호, 숫자(정수/소수), HTML 태그 패턴을 제공합니다. 각 패턴은 유효한 예시와 유효하지 않은 예시를 함께 로드하여 패턴의 경계를 정확히 파악할 수 있습니다.

이 패턴들은 출발점이지 정답이 아닙니다. 직접 수정하면서 하이라이트가 어떻게 변하는지 확인해 보세요. 예시는 의도적으로 엣지 케이스(예: IPv4의 999.999.1.1)를 포함하고 있어, 패턴이 무엇을 수락하는지뿐만 아니라 무엇을 거부하는지도 배울 수 있습니다. 스택 오버플로에서 패턴을 복사해 엣지 케이스 처리 여부를 추측하는 것보다 훨씬 빠른 방법입니다.

캡처 그룹, 룩어라운드, 6가지 플래그 — 완전 지원

현대 JavaScript 정규식은 강력한 기능을 갖추고 있습니다. 명명된 그룹 (?<year>\d{4}), 전방 탐색(lookahead) (?=…), 후방 탐색(lookbehind) (?<=…), u 플래그를 활용한 유니코드 속성 이스케이프, y 플래그를 사용한 고정(sticky) 매칭이 모두 지원됩니다. 이 테스터가 JavaScript 엔진이기 때문에 모든 기능을 그대로 쓸 수 있습니다. 매치 패널은 매치별 각 그룹 값을 분리하여 보여주기 때문에 추출 로직을 한눈에 검증할 수 있습니다.

m 플래그 데모는 특히 인상적입니다. 이 플래그를 켜면 ^와 $가 문자열 전체의 시작·끝이 아닌 각 줄의 시작·끝에 앵커됩니다. 로그 파일을 붙여넣고 ^ERROR 패턴이 각 오류 줄을 어떻게 찾아내는지 직접 확인해 보세요. s 플래그를 토글하면 .이 여러 줄 문자열 내의 줄바꿈 문자도 매치합니다. 여기서 보이는 모든 결과는 실제 코드에서 나오는 결과와 동일합니다.

내장 치트시트로 정규식을 더 빠르게 학습

접을 수 있는 정규식 치트시트에는 일상적으로 자주 사용하는 토큰이 정리되어 있습니다. 문자 클래스(\d \w \s), 앵커(^ $ \b), 수량자(* + ? {n,m}와 게으른 형태), 그룹, 대안(alternation), 역참조, 4가지 룩어라운드를 모두 다룹니다. 실험하는 동안 치트시트를 열어두세요. 토큰의 효과가 실시간으로 하이라이트되는 것을 보는 것이 정규식을 익히는 가장 빠른 방법입니다.

단순하게 시작해 보세요. 리터럴 단어를 매치하고, 문자 클래스를 추가하고, 수량자를 붙이고, 그룹을 만들어 보세요. 정규식 플레이그라운드에서 5분간 실시간 피드백을 받으면 문법 표를 한 시간 읽는 것보다 더 많이 배울 수 있습니다. 모바일에서도 잘 동작합니다. 레이아웃이 작은 화면에 맞게 조정되므로, 아이폰이나 안드로이드에서도 앱 설치 없이 패턴을 디버깅할 수 있습니다.

Frequently asked questions

정규식 테스터란 무엇인가요?

정규식 테스터는 정규표현식과 샘플 텍스트를 입력하면 모든 매치를 즉시 하이라이트로 보여주는 인터랙티브 도구입니다. 이 테스터는 번호 및 이름이 붙은 캡처 그룹 값을 표시하고, JavaScript의 6가지 플래그(g, i, m, s, u, y)를 모두 지원하며, 역참조를 활용한 실시간 치환 미리보기, 자주 쓰는 패턴 라이브러리, 그리고 전체 치트시트를 제공합니다. 아무것도 설치하거나 계정을 만들지 않고 코드에 적용하기 전에 패턴을 디버깅하고 검증할 수 있습니다.

이 정규식 테스터는 regex101.com, regexr.com과 어떻게 다른가요?

regex101.com과 regexr.com은 훌륭한 도구이지만 기능이 많아 복잡하게 느껴질 수 있습니다. 여러 엔진 지원, 전체 디버거, 퀴즈, 커뮤니티 패턴 등이 있습니다. 이 테스터는 JavaScript 엔진에 집중하여 개발자가 매일 가장 많이 필요로 하는 세 가지 질문에 답합니다. 매치되는가, 무엇을 캡처했는가, 치환하면 어떻게 되는가? 즉시 로드되고, 작업 내용이 로컬에 저장되며, 브라우저에서 완전히 실행되고, URL 인코딩된 링크로 패턴을 공유할 수 있습니다. 양쪽 모두 계정이 필요 없습니다. PCRE, Python, Golang 등 여러 엔진을 지원하는 regex101과 달리, 이 테스터는 브라우저의 네이티브 JavaScript 엔진을 실행하므로 결과가 정확합니다.

regexpal.com이나 debuggex.com과는 어떻게 다른가요?

다릅니다. Regexpal은 간단한 하이라이트를 제공하지만 캡처 그룹 분석이나 치환 미리보기가 없습니다. Debuggex는 시각적 철도 다이어그램을 추가하지만 자주 쓰는 패턴 라이브러리가 없습니다. 이 테스터는 매치별 캡처 그룹 추출, $1/$&lt;name&gt;/$& 역참조를 지원하는 실시간 치환 패널, 실제 예시 텍스트가 포함된 내장 패턴 라이브러리를 모두 제공합니다. 실제 JavaScript 엔진을 사용하기 때문에 결과가 코드에서 나오는 결과와 정확히 일치하며, 파일 업로드 없이 오프라인에서도 작동합니다.

정규식(regex)이란 무엇인가요?

정규식은 'regular expression(정규표현식)'의 줄임말로, 검색 패턴을 정의하는 문자열입니다. 정규식은 거의 모든 프로그래밍 언어와 텍스트 편집기에서 텍스트의 매칭, 추출, 유효성 검사, 찾기-바꾸기 작업에 사용됩니다. 이 개념은 1950년대 수학자 스티븐 콜 클레이니(Stephen Cole Kleene)에게 뿌리를 두고 있지만, 실용적인 정규식 사용은 1980년대 Perl 언어와 함께 폭발적으로 확산되었습니다.

JavaScript에서 정규식을 테스트하는 방법은 무엇인가요?

JavaScript에서는 몇 가지 방법을 사용할 수 있습니다. 참·거짓 여부 확인에는 regex.test(str), 매치된 텍스트를 얻으려면 str.match(regex), 그룹 정보를 포함한 전체 매치에는 str.matchAll(regex), 한 번에 하나씩 매치를 순회하려면 regex.exec(str)를 사용합니다. 이 테스터는 입력하는 동안 이 모든 작업을 실시간으로 실행하며, '자바스크립트 코드로 복사' 버튼을 클릭하면 패턴에 대한 정확한 코드를 바로 프로젝트에 붙여넣을 수 있습니다.

정규식에서 캡처 그룹이란 무엇인가요?

괄호 ( )는 캡처 그룹을 만들어 내부에서 매치된 내용을 저장하며, $1, $2 등으로 참조할 수 있습니다. (?&lt;name&gt;...) 형태로 작성된 명명된 그룹은 번호 대신 이름으로 캡처를 참조할 수 있게 해줍니다. 캡처 그룹은 이메일 주소에서 사용자 이름과 도메인을 추출하거나 치환에서 재사용하는 등 매치의 일부를 추출할 때 유용합니다. 이 테스터의 매치 패널은 매치별 모든 그룹 값을 목록으로 보여주어, 프로덕션 코드에 적용하기 전에 추출 로직을 쉽게 검증할 수 있습니다.

정규식 플래그 g, i, m, s, u, y는 각각 무슨 의미인가요?

g(전역)은 첫 번째 매치에서 멈추지 않고 모든 매치를 찾습니다. i(ignoreCase)는 대소문자 구분 없이 매칭합니다. m(multiline)은 ^와 $가 문자열 전체의 시작·끝이 아닌 각 줄의 시작·끝에 매칭되게 합니다. s(dotAll)는 점(.)이 줄바꿈 문자도 매치하게 합니다. u(Unicode)는 전체 유니코드 지원과 \p{Letter} 같은 속성 이스케이프를 활성화합니다. y(sticky)는 매치를 lastIndex에 고정합니다. 이 테스터에서는 클릭 한 번으로 6가지 플래그를 모두 토글할 수 있습니다.

정규식은 기본적으로 대소문자를 구분하나요?

네, 기본적으로 구분합니다. /hello/는 'hello'는 매치하지만 'Hello'는 매치하지 않습니다. i(ignoreCase) 플래그를 토글하면 대소문자에 관계없이 패턴을 매칭할 수 있습니다. 이것은 유효성 검사 로직에서 흔한 버그의 원인입니다. 예를 들어, i 플래그를 빠뜨린 이메일 정규식이 'User@Example.COM'을 매치하지 못하는 경우가 있습니다.

JavaScript에서 match, test, exec의 차이점은 무엇인가요?

test()는 불리언 값을 반환합니다. 매치 여부만 알면 될 때 사용합니다. match()는 문자열에 호출하며 매치 배열이나 null을 반환합니다. exec()는 정규식에 호출하며 한 번에 하나의 상세 매치를 반환하고, g 플래그가 설정된 경우 문자열을 순차적으로 탐색합니다. matchAll()은 전체 그룹 정보를 포함한 모든 매치를 한 번에 반환하며, 보통 추출 작업에 가장 적합한 선택입니다. 이 테스터는 내부적으로 matchAll을 실행하여 매치 패널에 모든 결과를 표시합니다.

정규식에서 전방 탐색(lookahead)과 후방 탐색(lookbehind)이란 무엇인가요?

전방 탐색 (?=...)은 문자를 소비하지 않고 현재 위치 뒤에 특정 패턴이 오는지 확인합니다. 부정 전방 탐색 (?!...)은 반대를 확인합니다. 후방 탐색 (?&lt;=...)과 (?&lt;!...)은 앞에 오는 내용에 대해 동일하게 동작합니다. '퍼센트 기호 뒤에 오지 않는 숫자 매치'나 '달러 기호 앞에 오는 단어 매치' 같은 조건에 유용합니다. 현대 JavaScript(V8)가 4가지 룩어라운드를 모두 지원하므로, 이 테스터에서도 모두 사용할 수 있습니다.

정규식은 모든 프로그래밍 언어에서 동일하게 작동하나요?

아닙니다. 정규식 문법(flavor)은 언어마다 상당히 다릅니다. JavaScript, PHP와 Perl이 사용하는 PCRE, Python의 re 모듈, .NET, Java, Ruby는 각기 다른 문법과 기능을 지원합니다. PCRE는 JavaScript에 없는 소유 수량자와 원자 그룹을 지원하고, Python은 명명된 그룹에 (?&lt;name&gt;...) 대신 (?P&lt;name&gt;...)를 사용하며, .NET은 균형 그룹(balancing groups)을 추가합니다. 이 테스터는 실제 JavaScript/V8 엔진을 실행하므로 프론트엔드 코드나 Node.js에서 나오는 결과와 정확히 일치합니다.

정규식으로 텍스트를 찾아서 바꾸는 방법은 무엇인가요?

JavaScript에서 str.replace(/pattern/g, 'replacement')는 모든 매치를 교체합니다. 치환 문자열에 $1이나 $&lt;name&gt;을 사용하여 캡처 그룹을 삽입하고, $&는 전체 매치에 사용합니다. 이 테스터의 치환 패널은 입력하는 동안 결과를 실시간으로 미리 보여주므로, 코드에 적용하기 전에 치환을 확인할 수 있습니다. 더 복잡한 변환을 위해 함수를 치환 인수로 사용할 수도 있습니다. 예를 들어 모든 매치를 대문자로 바꾸는 경우에 유용합니다.

정규식에서 \d, \w, \s는 무슨 의미인가요?

\d는 숫자(0~9)와 매치하고, \w는 단어 문자(글자, 숫자, 밑줄)와 매치하며, \s는 공백(스페이스, 탭, 줄바꿈)과 매치합니다. 대문자 형태인 \D, \W, \S는 각각 반대, 즉 \d, \w, \s가 매치하지 않는 모든 것과 매치합니다. 내장 치트시트에는 이러한 토큰과 다른 모든 일반 토큰이 예시와 함께 정리되어 있습니다. 문자 클래스는 대부분의 실용적인 정규식 패턴의 기본 구성 요소입니다.

정규식이 너무 많이 매치됩니다. 탐욕적 매칭이란 무엇인가요?

* 및 +와 같은 수량자는 기본적으로 탐욕적(greedy)입니다. 가능한 한 많은 텍스트를 잡으려 합니다. ?를 추가하면 게으른(lazy) 수량자(.*?)가 되어 가능한 한 적게 잡습니다. 또 다른 방법은 [^"]* 같은 부정 문자 클래스를 사용하여 특정 구분자에서 멈추게 하는 것입니다. 이 테스터에 텍스트를 붙여넣으면 탐욕적 매칭과 게으른 매칭의 차이를 하이라이트로 나란히 볼 수 있어 무슨 일이 일어나고 있는지 가장 빠르게 이해할 수 있습니다.

이 정규식 테스터는 무료인가요? 패턴을 공유할 수 있나요?

무료이며 광고가 없고 회원가입도 필요 없습니다. '공유 링크 복사'를 클릭하면 패턴, 플래그, 테스트 텍스트가 URL에 인코딩되어, 팀원이 해당 링크를 열면 같은 화면을 정확히 볼 수 있습니다. 양쪽 모두 계정이 필요 없습니다. 작업 내용은 브라우저에 자동으로 저장되어 다음 방문 시에도 그대로 있습니다. 패턴을 영구적으로 저장하고 공유하려면 로그인이 필요한 regex101과 달리, 이 도구는 즉시 공유 가능한 URL을 제공합니다.