hello@toolivers.com
정규식 테스터
JavaScript RegExp 패턴을 브라우저에서 바로 검증하고, 플래그별 동작, 매치 목록, 캡처 그룹, 치환 결과를 한 화면에서 확인하세요.
플래그
이 도구는 JavaScript `RegExp` 문법을 기준으로 동작합니다. `g` 플래그는 전체 매치 수집과 전체 치환에도 직접 영향을 줍니다.
자주 테스트하는 예시
lookbehind, named group, backreference 등 최신 JavaScript 정규식 기능도 현재 브라우저가 지원하면 함께 테스트할 수 있습니다.
입력한 패턴과 텍스트는 브라우저 안에서만 처리됩니다. 다만 PCRE, Python, Java, grep과는 문법 차이가 있을 수 있으니 런타임이 JavaScript가 아닌 경우 엔진 차이를 함께 확인하세요.
정규식이 유효합니다. 현재 설정에서 3개의 매치를 찾았습니다.
실행 요약
정규식 리터럴/(?<user>[A-Z0-9._%+-]+)@(?<domain>[A-Z0-9.-]+\.[A-Z]{2,})/gi
활성 플래그gi
매치 수3
고유 매치 수3
실행 모드`g` 플래그 기준 전체 검색
매치 결과
매치 1인덱스 4 ~ 23
$1hello
$2toolivers.com
userhello
domaintoolivers.com
매치 2인덱스 25 ~ 42
admin@example.org
캡처 그룹
$1admin
$2example.org
이름 있는 그룹
useradmin
domainexample.org
매치 3인덱스 62 ~ 78
SALES@company.io
캡처 그룹
$1SALES
$2company.io
이름 있는 그룹
userSALES
domaincompany.io
치환 미리보기
치환 문자열을 입력하면 현재 플래그 기준으로 JavaScript `String.prototype.replace()` 결과를 미리 봅니다.
치환 미리보기
문의: hello at toolivers.com, admin at example.org, invalid@local CC: SALES at company.io
`g` 플래그가 켜져 있어 전체 텍스트에 치환이 적용됩니다.
정규식 테스터 가이드
정규식 테스터는 패턴 문법을 검증하는 데서 끝나지 않고, 실제 텍스트에 어떤 매치가 잡히는지와 치환 결과가 어떻게 바뀌는지까지 함께 보는 데 의미가 있습니다. 특히 입력 검증, 로그 파싱, 텍스트 정규화, 프론트엔드 폼 처리, API 응답 후처리처럼 문자열 규칙이 중요한 작업에서 작은 정규식 차이가 버그로 이어지기 쉽습니다. 이 도구는 JavaScript 런타임 기준으로 패턴, 플래그, 매치, 그룹, 치환을 한 자리에서 빠르게 확인하도록 설계했습니다.
이럴 때 특히 유용합니다
- 입력값 검증용 정규식이 실제 예시 텍스트에서 어떻게 동작하는지 빠르게 확인할 때
- 로그, CSV, 마크업, 템플릿 문자열에서 필요한 부분만 추출할 때
- 정규식 치환으로 날짜, 코드, 텍스트 포맷을 바꾸기 전에 결과를 미리 볼 때
- 캡처 그룹과 named group이 예상한 값으로 잡히는지 디버깅할 때
플래그 해석 팁
- `g`는 '모든 매치 보기'뿐 아니라 치환 범위까지 바꾸므로 가장 먼저 의도와 맞는지 확인하세요.
- `m`은 줄 단위 앵커(`^`, `$`)에만 영향을 주고, 줄바꿈까지 `.`에 포함하려면 `s`가 필요합니다.
- `u`를 켜면 일부 이스케이프와 문자 클래스 동작이 바뀌므로 이모지나 다국어 텍스트에서 특히 중요합니다.
- `y`는 sticky 특성 때문에 디버깅용보다는 토크나이저처럼 위치 기반 파싱에 더 자주 쓰입니다.
자주 하는 실수
- 정규식 문법이 JavaScript, PCRE, Python, Java에서 모두 같다고 가정하는 실수
- 문자열 리터럴 안에서 백슬래시를 한 번 더 이스케이프해야 하는 상황을 놓치는 실수
- `g` 없이 테스트해서 첫 번째 결과만 본 뒤 전체 치환도 같은 방식일 것이라 착각하는 실수
- 여러 줄 텍스트에서 `.`와 `^`, `$`의 동작 차이를 `m`과 `s` 없이 해석하는 실수
자주 묻는 질문
현재 브라우저의 JavaScript `RegExp` 엔진 기준입니다. 따라서 PCRE, grep, Python `re`, Java 정규식과는 일부 문법이나 동작이 다를 수 있습니다.
네. 브라우저가 지원하는 경우 `(?<name>...)` 문법을 사용할 수 있고, 매치 결과에서 이름 있는 그룹도 함께 표시됩니다.
JavaScript 정규식은 `g`가 없으면 기본적으로 첫 번째 매치만 대상으로 동작합니다. 이 도구도 같은 기준을 그대로 반영합니다.
아니요. 패턴 컴파일, 매치 검사, 치환 미리보기는 모두 현재 브라우저 안에서만 처리됩니다.