* 입력한 콘텐츠는 서버로 전송되지 않습니다. 모든 계산은 브라우저에서 직접 수행됩니다
정규식 패턴을 입력하여 시작하세요
정규식 테스터란?
정규식(Regular Expression) 테스터는 샘플 텍스트에 대해 정규식 패턴을 실시간으로 빌드하고 테스트할 수 있는 대화형 도구입니다.
입력하면서 테스트 텍스트에 일치 항목이 바로 하이라이트되고, 각 일치 항목의 위치, 캡처 그룹, 길이를 보여주는 상세 일치 목록이 표시됩니다.
이 도구는 브라우저에서 완전히 실행됩니다. 어떤 데이터도 서버로 전송되지 않습니다.
주요 기능
- 실시간 일치 하이라이팅. 명확성을 위해 교대 색상으로 테스트 텍스트에서 일치 항목을 시각적으로 확인.
- 캡처 그룹 검사. 각 일치 항목에 대해 이름 있는 및 번호가 매겨진 캡처 그룹을 확인.
- 치환 미리보기. $1, $&, '$<name>' 치환 토큰을 지원하는 정규식 기반 찾기 및 바꾸기 테스트.
- 패턴 설명. 정규식의 토큰 수준 분석으로 각 부분이 의미하는 바를 보여줍니다 (예: \d+ → "1개 이상의 숫자").
- 치명적 역추적 보호. 백그라운드 스레드에서 시간 제한과 함께 일치가 실행되므로, 나쁜 패턴이 페이지를 멈추게 하지 않습니다.
- 프리셋 라이브러리. 이메일, URL, IP, 전화번호, 비밀번호 등의 일반 패턴으로 빠른 시작.
일반적인 활용 사례
- 정규식 학습. 각 토큰이 일치에 어떻게 기여하는지 확인하고, 샘플 텍스트로 이해도 테스트.
- 디버깅. 기존 정규식을 붙여넣고 실제 데이터에 대해 테스트하여 예상대로 일치하는지 확인.
- 데이터 추출. 캡처 그룹을 사용하여 로그 파일, CSV 또는 구조화된 텍스트에서 특정 부분 추출.
- 찾기 및 바꾸기. 코드에 적용하기 전에 복잡한 텍스트 변환을 미리보기.
- 유효성 검사. 이메일, 전화번호, URL 및 기타 유효성 검사 패턴을 엣지 케이스에 대해 테스트.
치트시트
| 토큰 | 의미 | 예시 |
|---|---|---|
| 문자 클래스 | ||
| \d | 모든 숫자 (0-9) | 123 → matches 1,2,3 |
| \w | 모든 단어 문자 (a-z, A-Z, 0-9, _) | a1_ → matches a,1,_ |
| \s | 모든 공백 (공백, 탭, 줄바꿈) | "a b" → space match |
| [...] | 사용자 지정 문자 클래스 | [aeiou] → vowels |
| [^...] | 부정 문자 클래스 | [^0-9] → non-digits |
| 앵커 & 경계 | ||
| ^ | 문자열 시작 | "^hello" → at start |
| $ | 문자열 끝 | "end$" → at end |
| \b | 단어 경계 | "\bword\b" → word |
| \B | 비단어 경계 | "\Bing\B" → inside |
| 수량자 | ||
| * | 0개 이상 | a* → "", a, aa, aaa |
| + | 1개 이상 | a+ → a, aa, aaa |
| ? | 0개 또는 1개 | a? → "", a |
| {n} | 정확히 n개 | a{3} → aaa |
| {n,} | 최소 n개 | a{2,} → aa, aaa |
| {n,m} | n개에서 m개 사이 | a{2,4} → aa, aaa, aaaa |
| *?, +?, ?? | 게으른 변형 (가능한 적게 일치) | "<.*?>" → shortest match |
| 그룹 & 룩어라운드 | ||
| (...) | 캡처 그룹 | (abc)+ → capture abc |
| (?:...) | 비캡처 그룹 | (?:abc)+ → group w/o capture |
| (?<name>...) | 이름 있는 캡처 그룹 | "(?<year>\d{4})" |
| (?=...) | 긍정 전방 탐색 | q(?=u) → q followed by u |
| (?!...) | 부정 전방 탐색 | q(?!u) → q not followed by u |
| (?<=...) | 긍정 후방 탐색 | "(?<=@)\w+" |
| (?<!...) | 부정 후방 탐색 | "(?<!@)\w+" |
| 이스케이프 | ||
| \n | 줄바꿈 | "line\n" → newline |
| \t | 탭 | "col\t" → tab |
| \\ | 리터럴 백슬래시 | "c:\\path" |
| \. | 리터럴 마침표 | "end\." → literal dot |
| \/ | 리터럴 슬래시 | "path\/to\/file" |
제한 사항
- JavaScript 정규식만 지원합니다. 이 도구는 브라우저 내장 정규식 엔진을 사용합니다. PCRE, Python 및 다른 정규식 종류는 다르게 동작할 수 있습니다.
- 구형 브라우저에서는 후방 탐색을 지원하지 않습니다. 후방 탐색 단언(?<=...)은 ES2018+가 필요합니다. Safari는 2023년에 지원을 추가했습니다.
- 일치 항목은 최대 1,000개입니다. UI 반응성을 유지하기 위해 처음 1,000개의 일치 항목만 렌더링됩니다.
- 캡처 그룹은 텍스트에서 하이라이트되지 않습니다. 그룹은 일치 목록에 표시되며, 하이라이트된 텍스트에는 인라인으로 표시되지 않습니다.