# 정규식 테스터

실시간 하이라이트, 캡처 그룹, 쉬운 말 설명과 함께 JavaScript 정규식을 테스트합니다.

https://codeknife.dev/ko/jeonggyusik-tester/

## 기능 소개

정규식을 텍스트에 대해 테스트하고, 모든 일치 항목을 강조 표시하며 캡처 그룹을 목록으로 보여 줍니다. 패턴은 시간 제한이 있는 별도의 워커에서 실행되므로 역추적이 심한 패턴이 있어도 페이지가 멈추지 않습니다. 입력한 내용은 브라우저 밖으로 나가지 않습니다.

## 사용 방법

1. 앞뒤 슬래시 없이 패턴을 입력합니다.
2. 플래그를 고릅니다. `g`(모든 일치 항목), `i`(대소문자 무시), `m`(여러 줄), `s`(점이 줄 바꿈과도 일치), `u`(유니코드), `y`(sticky)입니다.
3. 검색할 텍스트를 붙여넣습니다. 입력하는 동안 일치 항목이 강조 표시되고 그룹이 목록에 나타납니다.
4. 일치 항목을 선택하면 위치와 각 그룹의 값을 볼 수 있습니다.
5. 설명 옆의 '빠른 참조' 탭을 열어 토큰을 찾아보고 커서 위치에 삽입할 수 있습니다.

## 예제

`\b\w+\b`로 문장에서 단어를 찾습니다.

```
Hello, world!  →  Hello, world
```

`(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})`처럼 이름 있는 그룹으로 날짜를 캡처합니다.

```
2026-10-09  →  year 2026, month 10, day 09
```

## 알아두면 좋은 점

- JavaScript, PCRE2, Rust, Go는 각자의 엔진에서 실행되며, 뒤의 셋은 선택할 때 불러오는 WebAssembly 모듈입니다.
- Python, Java, .NET, POSIX ERE, POSIX BRE는 에뮬레이션입니다. 패턴에 해당 플레이버에 없는 문법이 있는지 확인한 뒤 다시 써서 PCRE2에서 실행합니다. 드문 경계 사례는 실제와 다를 수 있으며, POSIX 대안에서는 가장 긴 일치가 선택되지만 에뮬레이션은 처음 일치하는 대안을 고릅니다.
- Lookbehind(`(?<=…)`)와 이름 있는 그룹은 최신 브라우저에서 동작합니다.
- 패턴이 시간 초과되면 `(a+)+` 같은 중첩 수량자를 단순하게 바꾸세요.

## 정규식이란 무엇인가요?

정규식(regex)은 텍스트를 찾기 위한 간결한 패턴으로, 정확한 단어 대신 무엇을 찾을지를 설명합니다. 개발자는 검색, 검증, 데이터 추출에 정규식을 사용합니다. 이 테스터는 JavaScript, PCRE2, Rust, Go 패턴을 각자의 엔진에서 실행하고 Python, Java, .NET, POSIX는 PCRE2에서 에뮬레이션합니다. 패턴을 다른 곳에 복사하기 전에 플레이버를 확인하세요.

## 자주 묻는 질문

### 플래그는 어떤 역할을 하나요?

g는 첫 번째 대신 모든 일치 항목을 찾고, i는 대소문자를 무시하며, m은 ^와 $가 모든 줄에서 일치하게 하고, s는 점이 줄 바꿈과도 일치하게 하며, u는 전체 유니코드 지원을 켭니다.

### 패턴이 시간 초과로 중단되는 이유는 무엇인가요?

일부 패턴은 특정 텍스트에서 기하급수적으로 오래 걸릴 수 있습니다(치명적 백트래킹). 페이지가 멈추지 않도록 테스터는 2초 후에 이를 중단합니다.

### 내 텍스트가 어딘가로 전송되나요?

아니요. 패턴과 텍스트는 브라우저에서 처리되며 아무것도 업로드되지 않습니다.