정규식 테스터
위쪽에 패턴과 플래그를, 왼쪽에 테스트 문자열을 입력하면 오른쪽에 일치 부분과 그룹이 나타납니다. 아래 치환 칸에 바꿀 내용을 적으면 결과를 미리 볼 수 있습니다.
입력하면 바로 확인합니다
입력 내용은 브라우저에서만 처리합니다.
슬래시(/)는 입력하지 마세요. 자바스크립트 정규식 문법을 사용합니다.
일치 결과
/ /g패턴과 테스트 문자열을 입력하면 일치 부분이 여기 표시됩니다.
치환 미리보기가 여기에 표시됩니다.
패턴과 테스트 문자열을 입력해 주세요.
바로 쓸 수 있게.
- 바로 보이는 화면입력 위치와 결과 위치를 또렷하게 둡니다.
- 결과 먼저핵심 결과를 앞에 두고, 과정은 필요할 때만 보여줍니다.
- 요구 줄이기가입이나 불필요한 정보 입력 없이 바로 쓰게 합니다.
정규식의 일치와 치환을 확인하는 방법
정규식은 텍스트에서 일정한 규칙에 맞는 부분을 찾는 표현입니다. 숫자가 이어지는 구간을 추출하거나 날짜의 연·월·일을 나누고, 반복되는 공백을 정리할 때 쓰입니다. 이 정규식 테스터는 JavaScript 문법으로 패턴을 실행해 일치 부분과 캡처 그룹, 치환 결과를 보여 줍니다.
패턴과 검사할 텍스트는 현재 브라우저에서 처리하며 검사를 위해 서버로 보내지 않습니다. 입력 길이와 실행 시간에 제한이 있어 큰 로그 전체보다는 확인할 구간을 넣는 용도에 적합합니다. Python·PCRE와는 문법과 동작이 다르므로 실제 사용할 환경에서도 결과를 확인하세요.
정규식으로 찾는 규칙과 찾은 값은 다릅니다
패턴은 찾을 규칙이고 일치는 그 규칙에 맞아 선택된 텍스트입니다. 예를 들어 주문 번호에서 숫자만 추출하려면 숫자가 한 번 이상 이어지는 패턴을 씁니다. 문법이 맞는 패턴도 의도보다 넓거나 좁게 찾을 수 있으므로 결과에 선택된 글자를 직접 확인하세요.
- 패턴 \d+와 텍스트 주문 120개, 반품 3개를 넣고 g를 켜면 120과 3을 찾습니다.
- [0-9]는 숫자 한 글자, [0-9]+는 연속된 숫자 한 덩어리를 찾습니다.
- 점 .은 기본적으로 줄바꿈을 제외한 문자에 일치합니다. 실제 마침표를 찾을 때는 \.을 쓰세요.
패턴에는 바깥쪽 슬래시와 따옴표를 빼고 적습니다
이 도구는 패턴과 플래그를 따로 받습니다. 코드의 /\d+/g를 옮길 때는 패턴 칸에 \d+만 적고 g를 켜세요. 자바스크립트 문자열 코드에 쓰는 따옴표나 이중 역슬래시까지 붙여 넣으면 다른 문자를 찾게 됩니다.
- 입력 순서는 패턴 작성, 플래그 선택, 검사할 텍스트 입력입니다. 이어서 일치 부분과 그룹을 확인하세요.
- 패턴 칸의 \d는 숫자를 찾습니다. \\d는 역슬래시 뒤에 d가 붙은 텍스트를 찾습니다.
- 괄호 ( 자체를 찾으려면 \(을 적습니다. 괄호를 묶음 기호로 쓸 때는 닫는 괄호도 필요합니다.
g·i·m·s는 각각 찾는 범위를 바꿉니다
플래그는 같은 패턴을 어떻게 적용할지 정하는 옵션입니다. 필요한 것만 켜고 결과 변화를 비교하세요. 특히 여러 줄을 다룰 때 m과 s를 혼동하기 쉽습니다. m은 줄의 시작과 끝을, s는 점 .이 줄바꿈까지 포함할지를 바꿉니다.
- g를 켜면 일치를 반복해서 찾습니다. 끄면 첫 번째 일치만 찾으며 치환도 첫 번째에 적용합니다.
- i는 대소문자를 구분하지 않습니다. 패턴 cat은 i를 켜면 CAT에도 일치합니다.
- m을 켜면 ^와 $를 각 줄의 시작과 끝에도 적용합니다. m만 켜서는 점 .이 줄바꿈을 포함하지 않습니다.
- s를 켜면 점 .이 줄바꿈에도 일치합니다. 여러 줄에 걸친 구간을 찾을 때 사용하세요.
u·v·d·y는 문자 해석과 위치에 관여합니다
유니코드 문자나 정확한 위치를 다룰 때 쓰는 플래그입니다. 브라우저가 지원하는 범위에서 사용할 수 있으며 u와 v는 동시에 켤 수 없습니다. 다른 기기에서 오류가 나면 해당 브라우저의 정규식 기능 지원 여부도 확인하세요.
- u는 유니코드 인식 모드입니다. \p{L} 같은 유니코드 속성 패턴을 쓸 때 선택합니다.
- v는 유니코드 인식과 함께 문자 집합의 교집합·차집합 같은 확장 문법을 제공합니다.
- d는 일치와 캡처 그룹의 시작·끝 인덱스를 얻는 옵션입니다. 인덱스는 0부터 시작하며 끝 위치의 문자는 포함하지 않습니다.
- y는 현재 검색 위치에서만 일치를 시도합니다. 처음에는 텍스트의 시작에서 검사하며 g와 함께 쓰면 중간에 건너뛰는 부분 없이 이어서 찾습니다.
캡처 그룹은 일치 안에서 필요한 값을 나눕니다
괄호 (...)로 묶은 부분은 캡처 그룹으로 저장됩니다. 전체 일치와 그룹의 값을 구분해 보면 날짜나 코드에서 필요한 부분만 꺼내기 쉽습니다. 번호는 여는 괄호 순서대로 붙고, 이름 있는 그룹은 번호와 이름으로 같은 값을 참조할 수 있습니다.
- 패턴 (\d{4})-(\d{2})-(\d{2})에 2026-09-27이 일치하면 그룹 1은 2026, 그룹 2는 09, 그룹 3은 27입니다.
- (?<year>\d{4})처럼 이름을 붙이면 year 그룹으로 값을 구분할 수 있습니다.
- (?:...)는 묶기만 하는 비캡처 그룹입니다. 선택지나 반복 범위를 묶되 그룹 번호를 늘리고 싶지 않을 때 씁니다.
- 선택적인 그룹이 참여하지 않은 경우와 빈 문자열에 일치한 경우는 다릅니다. 예를 들어 (a)?b를 b에 적용하면 전체는 일치하지만 그룹 1은 참여하지 않습니다.
치환에는 $1·$<이름>·$&를 사용합니다
치환 문자열은 찾은 부분을 어떤 텍스트로 바꿀지 정합니다. JavaScript의 치환 표기를 사용하므로 그룹 번호 앞에는 달러 기호를 붙입니다. 원문을 바꾸기 전에 미리보기에서 띄어쓰기와 구분자까지 확인하세요.
- $1은 첫 번째 캡처 그룹, $2는 두 번째 캡처 그룹을 넣습니다. 해당 번호의 그룹이 패턴에 있어야 합니다.
- $<year>는 year라는 이름의 그룹, $&는 전체 일치를 넣습니다. 달러 기호 자체는 $$로 적습니다.
- 치환 문자열의 \1은 JavaScript 그룹 치환 표기가 아닙니다. 첫 번째 그룹을 넣으려면 $1을 쓰세요.
- 치환 칸에 적은 \n 두 글자는 자동으로 줄바꿈이 되지 않습니다. 줄을 바꾸려면 실제 줄바꿈을 입력하세요.
날짜 순서를 바꾸며 그룹과 치환을 연습하세요
2026-09-27을 27/09/2026으로 바꾸려면 연·월·일을 각각 캡처하고 순서를 바꿔 넣습니다. 아래 예제는 날짜의 모양을 찾는 연습입니다. 2026-02-30처럼 존재하지 않는 날짜도 같은 모양이므로 실제 날짜 검사에는 별도 달력 확인이 필요합니다.
- 패턴에 (\d{4})-(\d{2})-(\d{2}), 검사할 텍스트에 2026-09-27을 입력하세요.
- 치환 문자열을 $3/$2/$1로 적으면 27/09/2026이 됩니다.
- 문서 안의 여러 날짜를 바꾸려면 g를 켜세요. 앞뒤 글자까지 패턴에 넣으면 그 글자도 전체 일치에 포함됩니다.
한글을 찾을 때는 \w의 범위를 확인하세요
JavaScript의 \w는 기본적으로 영문자·숫자·밑줄을 찾습니다. 한글 전체를 뜻하는 표현이 아닙니다. 완성형 한글 음절을 찾을지, 자모까지 포함할지, 여러 언어의 글자를 찾을지 먼저 정하면 패턴을 고르기 쉽습니다.
- [가-힣]+는 완성형 한글 음절이 이어지는 부분을 찾습니다. ㄱ·ㅏ 같은 자모는 이 범위에 없습니다.
- \p{L}+에 u 또는 v를 켜면 유니코드에서 글자로 분류된 문자를 찾습니다. 한글 전용 조건은 아닙니다.
- \b는 \w를 기준으로 단어 경계를 판단하므로 한글 단어를 구분하려는 용도에는 그대로 적용하기 어렵습니다.
- 이모지 하나가 UTF-16 길이로는 둘 이상일 수 있습니다. 화면의 글자 개수와 입력 길이·인덱스가 다르게 보일 수 있습니다.
일치 없음과 문법 오류는 다르게 해결합니다
일치가 없다는 결과는 패턴을 읽었지만 조건에 맞는 부분을 찾지 못했다는 뜻입니다. 문법 오류는 패턴 자체를 실행하지 못한 상태입니다. 대괄호나 괄호를 닫았는지 확인한 다음, 짧고 확실한 예문부터 조건을 하나씩 붙여 보세요.
- 대소문자 차이는 i, 줄 시작 조건은 m, 줄바꿈을 가로지르는 점 .은 s 설정을 확인하세요.
- ^와 $를 붙이면 입력의 시작·끝 조건이 생깁니다. 부분 검색과 입력 전체의 형식 검사는 필요한 조건이 다릅니다.
- 같은 규칙이더라도 공백, 탭, 줄바꿈이 섞이면 결과가 달라집니다. \s는 공백뿐 아니라 줄바꿈도 포함합니다.
- Python의 (?P<name>...)나 PCRE 전용 문법을 그대로 붙여 넣지 마세요. 이 도구의 엔진은 브라우저의 JavaScript입니다.
글자가 선택되지 않아도 일치가 있을 수 있습니다
정규식은 글자를 소비하지 않고 위치만 확인할 수 있습니다. 이런 결과를 길이 0 일치라고 합니다. 빈 줄의 시작이나 특정 글자 바로 앞을 찾을 때 생기며, 길이가 있는 텍스트 강조와 구분해서 살펴보세요.
- 패턴 (?=a)를 ba에 적용하면 a 바로 앞인 인덱스 1에서 길이 0으로 일치합니다.
- ^는 시작 위치를 확인합니다. g·m을 함께 쓰면 각 줄의 시작에서 여러 일치가 생길 수 있습니다.
- a*는 a가 0개인 위치도 허용합니다. a가 하나 이상인 부분만 찾으려면 a+를 사용하세요.
긴 입력과 느린 패턴에는 실행 제한이 있습니다
검사할 텍스트는 20,000, 패턴은 500, 치환 문자열은 2,000 UTF-16 코드 단위까지 입력할 수 있습니다. 이 단위는 JavaScript 문자열 길이의 기준입니다. 실행 제한 시간은 350ms이며 제한에 걸리면 패턴이나 입력을 줄여 다시 검사하세요. 시간 초과는 일치가 없다는 결과가 아닙니다.
- 일치 개수는 전체를 세고 목록과 강조에는 앞의 200개만 표시합니다. 표시된 목록만 보고 전체 일치를 확인했다고 판단하지 마세요.
- 치환 미리보기는 최대 100,000 UTF-16 코드 단위입니다. 결과 길이 제한에 걸리면 입력을 나누거나 치환 문자열을 줄이세요.
- 반복 안에 반복이 겹치거나 선택지가 같은 부분을 여러 방식으로 소비하면 짧은 입력에서도 오래 걸릴 수 있습니다.
- 로그 전체 대신 문제를 재현하는 짧은 구간을 준비하세요. 이 제한 시간은 기기 사이의 성능을 비교하는 벤치마크 기준이 아닙니다.
실제 적용 전에는 맞아야 할 예와 틀려야 할 예를 비교하세요
한 번 일치했다고 실무에 바로 적용하기보다는 경계 조건을 함께 검사하세요. 추출은 필요한 값만 찾는지, 치환은 남겨야 할 내용까지 바꾸지 않는지 확인하는 것이 중요합니다. 이 도구에서 확인한 결과는 현재 브라우저의 동작입니다.
- 정상 입력과 함께 빈 값, 앞뒤 공백, 줄바꿈, 한글·이모지가 섞인 입력을 비교하세요.
- 치환 전후의 첫 항목과 마지막 항목, 구분자, 일치 개수를 확인하세요. 길이 제한이나 시간 초과가 있다면 전체 결과로 사용하지 마세요.
- 정규식으로 이메일 모양을 찾았다고 주소가 실제로 존재하는 것은 아닙니다. 날짜·URL도 용도에 맞는 별도 검증이 필요합니다.
- 서비스에 넣을 때는 같은 패턴·플래그를 실제 실행 환경에서 다시 테스트하세요. 브라우저 버전과 다른 언어의 엔진 차이를 확인할 수 있습니다.
정규식 테스터 자주 묻는 질문
정규식 패턴에 /와 플래그까지 붙여 넣어야 하나요?
패턴 칸에는 바깥쪽 슬래시와 플래그를 빼고 적습니다. /\d+/g를 테스트하려면 \d+를 입력하고 g를 켜세요. 따옴표로 감싸거나 코드 문자열용 이중 역슬래시로 바꿀 필요는 없습니다.
여러 군데가 맞는데 첫 번째만 나오는 이유는 무엇인가요?
g 플래그가 꺼져 있으면 첫 번째 일치만 찾습니다. 반복해서 찾거나 치환하려면 g를 켜세요. 목록과 강조는 앞의 200개까지만 표시하며 전체 일치 개수는 따로 확인할 수 있습니다.
m과 s 플래그는 어떻게 다른가요?
m은 ^와 $가 각 줄의 시작과 끝에도 적용되게 합니다. s는 점 .이 줄바꿈에도 일치하게 합니다. 여러 줄 입력이라고 두 옵션을 항상 함께 켤 필요는 없습니다.
한글이 \w에 잡히지 않는 이유는 무엇인가요?
JavaScript의 \w는 한글 전체를 포함하지 않습니다. 완성형 한글 음절은 [가-힣]+, 여러 언어의 글자는 \p{L}+와 u 또는 v 플래그로 찾을 수 있습니다. [가-힣]에는 ㄱ·ㅏ 같은 자모가 포함되지 않습니다.
치환할 때 캡처 그룹은 어떻게 넣나요?
번호 그룹은 $1·$2, 이름 있는 그룹은 $<이름>, 전체 일치는 $&로 넣습니다. 예를 들어 (\d{4})-(\d{2})-(\d{2})에 일치한 2026-09-27을 $3/$2/$1로 치환하면 27/09/2026이 됩니다.
치환 문자열의 \n은 줄바꿈으로 바뀌나요?
\n 두 글자를 자동으로 줄바꿈으로 해석하지 않습니다. 실제 줄바꿈을 입력하세요. 그룹 치환에는 \1 대신 $1을 사용하고, 달러 기호 자체를 넣으려면 $$를 사용합니다.
Python이나 PHP 정규식도 같은 결과가 나오나요?
이 도구는 브라우저의 JavaScript RegExp를 사용합니다. Python과 PHP의 PCRE는 지원 문법과 플래그, 유니코드 처리 등이 다를 수 있습니다. 다른 언어에 사용할 패턴은 그 실행 환경에서도 검증하세요.
입력 길이와 결과 표시 제한은 얼마인가요?
검사할 텍스트는 20,000, 패턴은 500, 치환 문자열은 2,000 UTF-16 코드 단위까지입니다. 일치 목록·강조는 앞의 200개, 치환 미리보기는 100,000 UTF-16 코드 단위까지 지원합니다. 실행이 완료되면 전체 일치 개수도 확인할 수 있습니다.
실행 시간이 초과되면 패턴이 잘못된 건가요?
350ms 실행 제한을 넘었다는 뜻이며 문법 오류나 일치 없음과는 다릅니다. 겹친 반복이나 선택지가 많으면 검색이 오래 걸릴 수 있습니다. 입력을 짧게 나누고 반복 범위를 좁혀 다시 확인하세요.
입력한 텍스트가 서버로 전송되나요?
패턴, 검사할 텍스트, 치환 문자열은 현재 브라우저에서 처리합니다. 정규식 검사와 치환 결과를 만들기 위해 입력 내용을 서버로 전송하지 않습니다.
u와 v를 동시에 선택할 수 있나요?
u와 v는 함께 사용할 수 없습니다. 필요한 문법에 맞춰 하나를 선택하세요. d·v 등 일부 기능의 지원 여부는 사용 중인 브라우저에 따라 다를 수 있습니다.
문법과 동작의 기준
일치와 치환 결과는 현재 브라우저의 자바스크립트 정규식 규칙을 따릅니다. 다른 언어의 정규식 엔진은 같은 패턴이라도 문법이나 결과가 다를 수 있습니다.
다음 텍스트 작업
패턴을 정리한 뒤 원문 비교나 문자 수 확인이 필요할 때 관련 도구로 이어갈 수 있습니다.