정규식은 한 번에 맞히기 어려운 도구입니다. 조금 고치고 결과를 보고 또 고치는 과정을 반복하게 되는데, 코드에 넣어 두고 실행해 보면 왕복이 너무 깁니다. 이 페이지는 패턴과 테스트 문자열을 나란히 두고 고칠 때마다 결과가 즉시 바뀌도록 만든 실험대예요. 패턴 칸 양옆에 슬래시가 그려져 있어 실제 리터럴을 쓰는 감각 그대로 입력할 수 있습니다.
결과는 세 가지로 보여 줍니다. 먼저 매치 개수가 맨 위에 나오고, 그 아래 테스트 문자열 전체에서 매치된 구간이 형광펜처럼 강조됩니다. 마지막으로 매치를 하나씩 풀어 놓은 목록이 나오는데, 각 항목마다 문자열에서의 위치와 매치된 값, 그리고 괄호로 잡은 번호 그룹이 순서대로 표시됩니다. 물음표 P 문법으로 만든 이름 있는 그룹도 이름과 함께 따로 보여 주기 때문에 그룹이 여러 개인 복잡한 패턴을 점검할 때 특히 편합니다. 매치되지 않은 선택적 그룹은 없음으로 명시됩니다.
플래그는 체크박스로 g(전역)·i(대소문자 무시)·m(여러 줄)·s(점이 줄바꿈 포함)를 켤 수 있고, 오른쪽 작은 칸에 직접 글자를 타이핑해도 됩니다. 두 입력은 서로 연동되며, 체크박스에 없는 u나 y 같은 플래그를 그 칸에 직접 적어 넣어도 그대로 적용됩니다. 문법은 브라우저의 자바스크립트 정규식 엔진을 그대로 쓰므로, 여기서 통과한 패턴은 프론트엔드 코드에 그대로 옮겨도 같게 동작합니다.
사용 방법
슬래시 사이의 칸에 패턴을 입력합니다. 예를 들어 날짜를 잡으려면 괄호로 연·월·일을 각각 묶습니다.
필요한 플래그를 체크하거나 오른쪽 칸에 직접 적습니다. 기본값은 g가 켜진 상태입니다.
아래 테스트 문자열 칸에 검사할 텍스트를 붙여넣습니다.
강조 표시로 어디가 걸렸는지 보고, 매치 목록에서 그룹 값이 의도대로 나뉘었는지 확인합니다.
궁금한 사항 있으신가요?
A체크박스로는 g·i·m·s 네 가지를 제공하고, 오른쪽 플래그 칸에 직접 타이핑하면 u나 y처럼 체크박스에 없는 플래그도 그대로 적용됩니다. 잘못된 조합을 넣으면 정규식 오류 메시지로 알려 줍니다.
A가능합니다. 이름 있는 그룹을 쓰면 매치 목록에 번호 그룹과 별도로 이름별 값이 표시됩니다. 매치는 됐지만 특정 이름 그룹이 비어 있으면 없음으로 나오니 선택적 그룹을 점검할 때 유용합니다.
A빈 문자열에 매치되는 패턴은 무한히 반복될 수 있어서, 한 자리에서 진전이 없으면 위치를 한 칸 밀고 십만 회에서 강제로 멈추도록 안전장치를 넣어 두었습니다. 개수가 비정상적으로 크면 패턴에 빈 매치가 생기는지 살펴보세요.
A기본 문법은 대체로 통하지만 엔진이 다릅니다. 여기서는 브라우저의 자바스크립트 엔진을 쓰기 때문에, 파이썬의 re나 PHP의 PCRE에만 있는 표현이나 반대로 자바스크립트에만 있는 동작은 결과가 달라질 수 있습니다.
A테스트 문자열의 시작부터 0으로 세었을 때 그 매치가 시작되는 문자 인덱스입니다. 줄 번호가 아니라 전체 문자열 기준이며, 코드에서 잘라내기 작업을 할 때 그대로 쓸 수 있습니다.
A강조 표시는 앞선 매치가 끝난 지점 이후만 칠하기 때문에 서로 겹치는 매치는 뒤쪽이 강조에서 빠질 수 있습니다. 개수와 매치 목록에는 모두 나오니 목록 쪽을 함께 봐 주세요.
A저장되지 않습니다. 패턴과 문자열 모두 브라우저 안에서만 다루며 서버로 보내지 않습니다. 실제 로그 일부를 붙여넣고 실험해도 밖으로 나가지 않아요.
A현재는 매치 찾기와 그룹 확인만 지원하고 치환 미리보기는 없습니다. 치환할 문자열을 정하기 전에 그룹이 제대로 잡히는지 확인하는 용도로 쓰면 좋습니다.