온라인에서 정규 표현식을 테스트하는 방법
정규 표현식은 프로그래밍에서 가장 강력한 도구 중 하나이자, 가장 익히기 까다로운 도구 중 하나입니다. regex 테스터를 사용하면 코드를 실행하고 출력을 확인하며 무엇이 잘못되었는지 추측하는 대신, 패턴을 대화식으로 만들고 디버그할 수 있습니다.
regex 테스터를 사용하는 이유
에디터에서 regex를 작성하면 실행 시점에야 오류가 보입니다. 테스터는 다음을 보여줍니다:
- 실시간 강조 표시 — 패턴을 입력하는 즉시 텍스트의 어느 부분이 매칭되는지 정확히 확인할 수 있습니다
- 캡처 그룹 — 디버그 코드를 작성하지 않고도 각 그룹이 무엇을 캡처하는지 확인할 수 있습니다
- 매치 세부 정보 — 각 매치의 정확한 위치, 길이, 내용을 확인할 수 있습니다
- 치환 미리 보기 — 적용하기 전에 찾아 바꾸기 결과를 확인할 수 있습니다
온라인에서 regex를 테스트하는 방법
- 패턴을 입력하세요 — 패턴 필드에 regex를 입력하세요. 필요에 따라 플래그(전역은 g, 대소문자 무시는 i, 다중 행은 m)를 활성화하세요.
- 테스트 텍스트를 붙여 넣으세요 — 테스트할 텍스트를 입력하세요. 매치가 실시간으로 강조 표시됩니다.
- 결과를 확인하세요 — 모든 매치를 그 아래 캡처 그룹과 함께 확인하세요. "치환할 문자열" 필드를 사용해 치환을 테스트할 수 있습니다.
알아두면 좋은 일반적인 regex 패턴
이메일 주소(기본):
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
URL:
https?://[^\s]+
전화번호(미국):
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
날짜(YYYY-MM-DD):
\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])
IP 주소(IPv4):
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
더 나은 regex를 작성하기 위한 요령
- 단순하게 시작하세요 — 먼저 동작하는 기본 패턴을 만들고, 그다음에 복잡함을 더하세요. 처음부터 완벽한 regex를 쓰려는 시도는 거의 성공하지 못합니다.
- 전역 플래그(g)를 사용하세요 — 이 플래그가 없으면 테스터는 첫 번째 매치에서 멈춥니다.
g를 사용하면 텍스트의 모든 매치를 확인할 수 있습니다. - 경계 케이스를 테스트하세요 — regex가 명확한 케이스에는 매칭되지만 빈 문자열, 특수 문자, 경계 조건에서 실패할 수 있습니다. 그것들을 테스트 텍스트에 추가하세요.
- 특수 문자를 이스케이프하세요 —
.,*,+,?,(,),[,],{,},\,^,$,|는 regex에서 특별한 의미를 가집니다. 문자 그대로 매칭하려면 백슬래시를 앞에 붙이세요. - 비캡처 그룹을 사용하세요 — 캡처 없이 그룹화만 하려고 괄호가 필요하다면
(...)보다(?:...)를 사용하세요. 결과가 더 깔끔해집니다.
자주 묻는 질문
내 regex가 다른 프로그래밍 언어에서도 동작하나요?
regex 문법의 대부분은 JavaScript, Python, Java, PHP 등에서 공통적입니다. 기본 패턴(문자 클래스, 수량자, 앵커)은 어디서나 동작합니다. lookbehind나 명명된 그룹 같은 일부 고급 기능은 언어마다 다릅니다.
내 테스트 데이터가 서버로 전송되나요?
아니요. 모든 매칭은 JavaScript의 기본 RegExp 엔진을 사용해 브라우저에서 로컬로 이루어집니다. 어디로도 전송되지 않습니다.
치환을 테스트할 수 있나요?
네. 치환 패턴(캡처 그룹은 $1, $2 등으로 사용)을 입력하면 찾아 바꾸기 결과를 실시간으로 확인할 수 있습니다.
오프라인에서도 동작하나요?
네. 페이지가 로드되면 도구는 인터넷 연결 없이 브라우저 안에서 완전히 동작합니다.