정규식 테스터

브라우저 안에서만 처리됩니다. 입력한 내용과 선택한 파일은 서버로 전송되지 않습니다.

자주 쓰는 것
플래그
전체 찾기(g)는 켜지 않아도 이 도구가 알아서 전부 찾습니다 — 껐을 때와 결과가 같습니다.

하이픈이 있어도 없어도 맞습니다. 실제 개통 여부는 알 수 없습니다.

결과

사용법

  1. 정규식을 넣거나 위의 "자주 쓰는 것"에서 하나를 고릅니다. 고르면 예시 문장도 같이 채워집니다.
  2. 플래그를 눌러 켜고 끕니다. 대상 텍스트를 붙여넣으면 일치하는 부분이 바로 강조됩니다.
  3. 일치 목록 표에서 위치와 캡처 그룹 값을 확인합니다. 이름 있는 그룹은 이름으로 열이 생깁니다.
  4. "치환도 해 보기"를 켜면 $1 이나 $<이름> 을 쓴 치환 결과를 미리 볼 수 있습니다.

자주 묻는 질문

정규식이 브라우저를 멈추게 할 수 있나요?

이 도구에서는 멈추지 않습니다. (a+)+b 같은 패턴에 조금 긴 입력을 주면 되추적이 폭발해 몇 분에서 몇 시간까지 돌 수 있고, 자바스크립트의 정규식 실행은 중간에 끊을 수 없습니다. 그래서 계산을 별도 스레드(Web Worker)에서 돌리고 1.5초를 넘으면 그 스레드를 강제로 종료합니다 — 화면은 그동안에도 반응합니다. 정규식 테스터는 완성되지 않은 패턴을 한 글자씩 치는 도구라서 위험한 중간 상태를 반드시 지나가고, 그래서 이건 예외 처리가 아니라 기본 동작입니다.

위험한 패턴이라는 경고는 무슨 기준인가요?

반복 안에 반복이 있는 모양((a+)+ 같은 것)을 찾습니다. 이게 되추적 폭발의 대표적인 원인입니다. 확실한 판정은 불가능해서(정지 문제에 가깝습니다) 대표적인 신호만 잡고, 실제 보호는 시간 제한이 합니다. 경고가 없어도 느릴 수 있고, 경고가 있어도 짧은 입력에서는 빠릅니다.

전체 찾기(g)를 껐는데 결과가 같습니다.

이 도구는 항상 모든 일치를 찾습니다. g 없이 exec 를 반복하면 늘 첫 일치만 나와 무한 루프가 되기 때문에 내부에서는 g 를 붙여 돌립니다. 대신 다른 코드에 붙여넣을 때는 g 유무가 중요하므로 화면의 /플래그 표시는 여러분이 켠 그대로 보여줍니다.

빈 문자열에 일치한다고 나옵니다.

a* 나 전방탐색((?=x))은 길이 0 인 일치를 만듭니다. 정상 동작이고, 표에는 "(빈 문자열)"로 표시합니다. 강조 표시에서는 보여줄 글자가 없어 아무 표시도 하지 않습니다.

한글은 어떻게 찾나요?

[가-힣] 이 완성형 음절 전체입니다. 자모 낱글자(ㄱ, ㅏ)까지 잡으려면 [ㄱ-ㅎㅏ-ㅣ가-힣] 처럼 범위를 더합니다. 자음·모음이 분리 저장된 텍스트(맥에서 만든 파일 이름 등)는 음절 범위로 안 잡히니 유니코드 플래그(u)와 정규화가 필요할 수 있습니다.

"자주 쓰는 것" 패턴을 그대로 실무에 써도 되나요?

형식 확인용입니다. 각 패턴마다 한계를 적어 두었으니 읽어 보세요 — 예를 들어 사업자등록번호는 검증 숫자 계산이 필요해 정규식으로는 형식만 볼 수 있고, 이메일은 규격을 전부 따르는 정규식이 실용적이지 않으며, 날짜는 2월 31일 같은 실제 존재 여부를 판별할 수 없습니다. 최종 검증은 정규식이 아니라 코드로 해야 합니다.

입력한 텍스트가 서버로 전송되나요?

전송되지 않습니다. 정규식 실행과 강조 표시가 모두 브라우저 안에서 끝납니다. 네트워크를 끊고도 동작합니다.