정규식 테스터
정규식을 테스트하고 매치 부분을 하이라이트해요. g·i·m 플래그 지원.
이럴 때 쓰세요
이렇게 사용하세요
결과가 예상과 다를 때
결과가 잘려 보여요
전체 결과는 복사 버튼으로 받을 수 있어요.
입력한 내용이 사라졌어요
이 기기에 자동 저장돼요. 브라우저 저장소를 지우면 함께 사라져요.
자주 하는 실수
- \d{3}-\d{4}-\d{4}만 쓰면 '010 1234 5678'처럼 공백이 있는 표기를 못 잡습니다. 구분자까지 함께 넣으세요.
- \w는 한글을 포함하지 않습니다. 한글 이름이나 주소를 검증하면 아예 매치가 안 나니 유니코드 범위를 명시해야 해요.
- 탐욕 수량자 .+는 앞뒤를 한꺼번에 잡습니다. 태그 하나만 뽑거나 가장 짧게 자르려면 .+?로 바꿔야 해요.
- ^와 $는 문자열 전체가 아니라 줄 단위로 매칭될 수 있습니다. 여러 줄 로그를 한 번에 검사하면 의도와 다른 결과가 나옵니다.
계산 근거
정규식 문법은 ECMA-262를 따릅니다. PCRE나 Python re에서 쓰는 (?
실제로 계산해 보면
010-1234-5678과 010 1234 5678을 함께 잡으려면?
\d{3}[- ]\d{4}[- ]\d{4}처럼 구분자를 문자 클래스로 두면 됩니다. 두 표기 모두 잡히고 공백 없는 01012345678은 안 잡혀요.
g 플래그를 빼면 뭐가 달라지나요?
첫 매치에서 멈춥니다. g를 켜면 모든 등장 위치를 찾아야 치환도 전체가 되고 중복 검출 여부도 확인할 수 있어요.
\b로 뭐를 잡을 수 있나요?
\b는 단어 경계입니다. \b\d{4}-\d{2}-\d{2}\b는 2026-03-04는 잡지만 20260304는 안 잡습니다. 하이픈을 필수가 아니게 하면 2026년 3월 4일 같은 표기도 매치됩니다.
더 궁금한 것
탐욕 수량자와 게으른 수량자는 언제 쓰나요?
기본 수량자 *, +, {n,m}는 가능한 한 많이 매치합니다. 태그를 짝이 아니라 하나만 뽑거나 가장 짧은 문자열을 잘라야 할 때 뒤에 ?를 붙여 게으른 수량자로 바꿔요.
한 번에 너무 많은 매치가 나오면 어디가 문제예요?
점이 줄바꿈이나 공백을 넘지 못해 매칭이 끊긴 경우입니다. 공백까지 허용하려면 [\s\S]나 s 플래그를 씁니다. 문자 하나씩 넘기는 실수는 빈칸 패턴 대신 \s를 쓰면 해결돼요.
같은 정규식인데 언어마다 결과가 다른 이유는?
엔진이 달라서입니다. JavaScript는 ECMA-262, Python re는 다른 문법을 씁니다. 서버와 브라우저 양쪽에서 쓸 정규식이라면 양쪽이 모두 지원하는 문법으로 제한하는 게 안전합니다.
알아둘 경계값
- 매치는 최대 200개까지만 표시돼요. 그 이후는 개수에도 포함되지 않으니 패턴을 좁혀야 해요.
- 빈 문자열 매치는 한 칸씩 건너뛰며 처리돼요. a* 같은 패턴은 글자 사이마다 표시가 붙어요.
- 대소문자 무시(i)를 켜도 한글에는 영향이 없어요. 영문에만 적용되니 한글 패턴은 그대로 쓰세요.
- 잘못된 정규식은 결과 대신 오류 메시지가 표시돼요. 괄호 짝이 맞는지 먼저 확인하세요.
- 매치 개수는 하이라이트된 조각 수와 같아요. 겹치는 매치는 뒤부터 다시 검사하지 않아 세지 않아요.
- 입력 글이 길면 하이라이트 생성에 시간이 걸릴 수 있어요. 수만 줄 로그는 범위를 나눠 테스트하세요.
결과를 믿기 전 확인 목록
- 사용한 플래그가 g와 i, m 중 의도한 것인지 확인하세요.
- 테스트 문구가 실제 데이터와 같은 형식인지 확인하세요.
- 탐욕 수량자 때문에 범위가 넓어지지 않았는지 확인하세요.
- 줄바꿈 포함 여부를 별도로 테스트했는지 확인하세요.
- 이메일과 전화 패턴이 최신 형식을 커버하는지 확인하세요.
- 매치 개수가 예상 범위 안에 드는지 확인하세요.
- 치환이 목적이면 별도 도구로 옮길 것인지 확인하세요.
- 서버와 브라우저의 정규식 문법 차이를 확인하세요.
- 역슬래시 이스케이프가 정확한지 다시 확인하세요.
자주 묻는 질문
플래그는?
g·i·m·s 플래그를 토글로 지정할 수 있습니다.
치환도 되나요?
이 도구는 매치 확인용이에요. 실제 바꾸기는 찾기·바꾸기 도구를 쓰세요.