매치 하이라이트
캡처 그룹
| 매치 | 위치 | 전체 | 그룹 | 값 |
|---|
치환 미리보기
이 도구를 쓰는 법
g i m s u 플래그를 조합할 수 있습니다. 표에는 번호 캡처와 (?<name>...) 이름 캡처가 표시됩니다.
패턴은 격리된 Worker에서 실행하며 1초를 넘으면 강제로 중단합니다. 빈 문자열 매치는 lastIndex를 직접 전진시켜 무한 반복을 막습니다. 단, 이 제한은 정규식 자체가 안전하다는 보증은 아닙니다.
브라우저에서만 처리되며 입력값을 서버로 보내지 않습니다.
정규식 테스터 사용 안내
정규식 매치 하이라이트, 이름 있는 캡처 그룹 표, replace 치환 결과를 안전 제한과 함께 확인합니다.
정규식 패턴, 플래그와 테스트 문자열을 입력하세요. 일치 결과를 확인하며 패턴을 조정하세요. JavaScript 정규식 문법을 기준으로 합니다.
어떻게 구현했나
패턴은 화면과 같은 스레드가 아니라 별도의 Web Worker 안에서 실행합니다. 정규식은 입력에 따라 사실상 끝나지 않는 경우가 있는데(백트래킹 폭발), 그 코드가 화면 스레드에 있으면 탭 전체가 얼어붙어 새로고침 말고는 방법이 없습니다.
Worker는 1초가 지나면 강제로 종료합니다. 실행 중인 정규식은 중간에 취소할 방법이 없어서, 멈추게 하는 유일한 수단이 스레드를 통째로 버리는 것입니다.
빈 문자열에 매치되는 패턴은 검색 위치가 전진하지 않아 무한 반복이 됩니다. 이때는 위치를 직접 올리되, 서로게이트 쌍(이모지 등)이면 2를 더해 문자 한가운데를 가리키지 않게 합니다.
매치가 10,000개를 넘으면 중단하고, 플래그는 g i m s u만 중복 없이 받습니다.
이 제한들은 결과를 보여주기 위한 안전장치이지 그 패턴이 안전하다는 보증이 아닙니다. 같은 정규식을 서버에서 쓸 계획이라면 ReDoS 검토를 따로 하세요.
자주 묻는 질문
입력한 데이터는 어디에서 처리하나요?
이 도구의 입력 데이터는 브라우저에서 처리하며 도구 기능을 위해 서버로 업로드하지 않습니다. 결과를 공유하기 전 민감한 정보가 없는지 확인하세요.
결과가 예상과 다르면 어떻게 하나요?
입력 형식, 문자 인코딩과 선택한 옵션을 확인하세요. 각 도구가 안내하는 지원 범위와 제한을 확인하고, 원본 데이터를 보관한 상태에서 결과를 검토하세요.