정규식 테스터(JavaScript)
정규식이 텍스트의 어디에 일치하는지 위치와 캡처 그룹을 표로 보여 주고, 찾아 바꾸기 결과도 미리 봅니다. JavaScript 정규식 엔진 기준입니다.
패턴과 예시 텍스트를 입력하면, 계산하기를 누른 뒤 정규식이 정확히 무엇에 일치하는지 각 일치 항목의 위치와 캡처 그룹까지 볼 수 있습니다. 이 테스터는 브라우저의 JavaScript RegExp 엔진, 즉 JavaScript 프로그램에서 쓰는 것과 같은 RegExp API를 사용하며, 패턴을 코드에 넣기 전에 $1 형태의 참조를 쓰는 찾아 바꾸기 결과를 미리 볼 수 있습니다.
사용 방법
- 슬래시 없이 패턴을 입력하거나
/\d+/gi같은 리터럴을 붙여 넣습니다. - 필요한 플래그 g, i, m, s, u를 선택합니다.
- 검색할 텍스트를 붙여 넣습니다.
- 원하면 바꿀 내용을 입력해
text.replace()결과를 미리 봅니다. - 계산하기를 누릅니다. 일치 개수를 읽은 뒤 일치 항목과 그룹 표를 확인합니다.
계산식
반복: match = re.exec(text) (re.lastIndex부터), g 플래그가 있는 동안
g가 없으면 첫 번째 일치만 반환합니다. 위치는 JavaScript의 match.index처럼 UTF-16 코드 단위를 0부터 센 값입니다. 빈 문자열에 일치한 뒤에는 한 위치(u나 v에서는 코드 포인트 하나)씩 앞으로 가므로 x* 같은 패턴도 무한 반복하지 않습니다. 패턴은 별도의 워커에서 2초 제한으로 실행되며, 느린 표현식은 페이지를 멈추지 않고 중단됩니다.
예시
기본 패턴 (\d{4})-(\d{2})-(\d{2})는 예시 문장에서 일치 항목 2개를 찾습니다. 인덱스 15의 2026-03-15와 인덱스 30의 2026-10-01이며, 각각 그룹이 3개(연, 월, 일)입니다. 2026/12/01은 슬래시를 써서 건너뜁니다. 치환 $2/$3/$1은 문장을 "Invoices dated 03/15/2026 and 10/01/2026 are due…"로 바꿉니다.
자주 묻는 질문
내 정규식이 Python, PHP, Java에서도 똑같이 동작하나요?
문자 클래스, 수량자, 그룹, 앵커 같은 기본은 공통이지만, 소유 수량자(JavaScript에는 없음), 이름 있는 그룹의 문법, 일부 이스케이프 같은 기능은 언어마다 다릅니다. 실제로 쓸 언어에서 경계 사례를 다시 테스트하세요.
일치 항목이 하나만 나오는 이유는 무엇인가요?
g(전역) 플래그가 꺼져 있기 때문입니다. 이 플래그가 없으면 JavaScript는 첫 번째 일치에서 멈추고 replace()도 그것 하나만 바꿉니다.
점(.)이 줄을 넘어 일치하지 않는 이유는 무엇인가요?
기본적으로 점은 줄바꿈을 제외합니다. s(dotAll)를 선택하거나 점 대신 [\s\S]를 쓰세요.
패턴이 시간 초과된 이유는 무엇인가요?
(a+)+$ 같은 중첩 수량자는 백트래킹이 오래 걸릴 수 있습니다. 실행은 워커에서 이루어지고 2초 후 중단됩니다. 입력을 줄이거나 패턴을 단순하게 한 뒤 다시 계산하세요.
출처
최종 업데이트:
이 입력값이 담긴 페이지 주소: https://kakao.mobile/ko/tools/regex-tester/
인용·퍼가기
kakaoCalc. (2026, November 8). 정규식 테스터(JavaScript). https://kakao.mobile/ko/tools/regex-tester/
“정규식 테스터(JavaScript).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ko/tools/regex-tester/.