정규식 테스터

실시간 매치 하이라이팅, 캡처 그룹, 치환 미리보기, 패턴 설명을 제공하는 정규식 테스트 및 디버그 도구입니다. 모든 JavaScript 정규식 기능을 지원합니다.

정규식 테스터는 무엇인가요?

정규식 테스터는 정규식(Regex)을 대화형으로 작성하고, 테스트하고, 디버그할 수 있는 전문 개발 도구입니다. 실시간으로 매치를 하이라이트하고, 캡처 그룹을 보여주며, 패턴 구성 요소를 설명합니다. 정규식(Regular Expression)은 텍스트 패턴을 설명하는 문자 시퀀스로, 모든 주요 프로그래밍 언어가 지원하는 강력한 도구입니다. 정규식은 이메일 주소, 전화번호, URL, 날짜 형식 같은 데이터를 검증하거나, 대용량 텍스트에서 특정 패턴을 추출하거나, 텍스트 편집기와 코드 파일에서 복잡한 검색-대체 작업을 수행하는 데 필수적입니다. 하지만 정규식은 특수 문자, 양화사, 그룹, 플래그가 복잡하게 조합되어 작성하기 어렵고, 예상치 못한 방식으로 실패할 수 있습니다. 실시간 피드백 없이 정규식을 제대로 작성하는 것은 매우 어렵습니다. 정규식 테스터는 패턴을 입력하는 즉시 테스트 텍스트에서 매치를 하이라이트하여 패턴이 예상대로 작동하는지 즉각 확인할 수 있게 합니다. 초보자에게는 학습 도구로, 전문가에게는 복잡한 패턴을 코드에 적용하기 전에 검증하는 디버깅 도구로 활용됩니다.

정규식 테스터 사용 방법

상단 입력 필드에 정규식 패턴을 입력하세요(/ / 슬래시 없이). 텍스트 영역에 테스트할 텍스트를 붙여넣거나 입력하세요. 매치가 노란색이나 파란색으로 즉시 하이라이트됩니다. 여러 매치를 찾으려면 g(전역) 플래그를, 대소문자를 무시하려면 i(대소문자 구분 없음) 플래그를, 여러 줄에서 ^와 $가 각 줄의 시작과 끝과 일치하도록 하려면 m(여러 줄) 플래그를 활성화하세요. 패턴에 소괄호 그룹이 있으면 캡처 그룹 패널이 각 매치에서 그룹이 무엇을 캡처했는지 보여줍니다. 치환 필드에 대체 문자열(캡처 그룹을 다시 참조하려면 $1, $2 사용)을 입력하면 치환 결과를 실시간으로 미리볼 수 있습니다. 일반 패턴(이메일, URL, 전화번호 등)에서 미리 만들어진 예제를 선택하여 출발점으로 사용하세요. 패턴 설명 패널은 각 패턴 구성 요소를 사람이 읽을 수 있는 언어로 분석해 줍니다.

자주 묻는 질문

이 도구에서 사용하는 정규식 종류는 무엇인가요?

이 도구는 웹 브라우저와 Node.js에서 표준으로 사용하는 JavaScript 정규식(ECMAScript 정규식 사양)을 사용합니다. JavaScript 코드, Node.js 스크립트, 브라우저 환경을 위한 패턴 테스트에 이상적입니다. PCRE(Perl 기반, PHP, Apache, Nginx에서 사용)나 Python re 모듈 같은 다른 언어의 정규식 엔진과 문법이 약간 다를 수 있습니다.

정규식 플래그는 무엇을 하나요?

g(전역): 첫 번째 매치 후 중단하지 않고 모든 매치를 찾습니다. i(대소문자 구분 없음): 대문자와 소문자를 같다고 취급합니다. m(여러 줄): ^와 $를 전체 문자열의 시작/끝이 아닌 각 줄의 시작과 끝에 일치시킵니다. s(dotAll): .이 개행 문자도 포함하여 모든 문자와 일치합니다. u(유니코드): 전체 유니코드 일치를 활성화하고 유니코드 이스케이프를 올바르게 처리합니다. y(고정): 마지막 매치 이후의 정확한 위치에서만 일치시킵니다.

전방탐색과 후방탐색을 사용할 수 있나요?

네, JavaScript는 긍정/부정 전방탐색(?=, ?!)과 후방탐색(?<=, ?<!)을 모두 지원합니다. 이들은 문자를 소비하지 않는 제로 너비 어설션으로, 패턴을 일치시키면서 일치한 내용은 결과에 포함하지 않습니다. 예를 들어 /(?<=\$)\d+/는 달러 기호 다음에 오는 숫자는 일치하지만 결과에 달러 기호는 포함되지 않습니다.

정규식으로 이메일 주소를 검증할 수 있나요?

기본적인 이메일 검증은 정규식으로 가능합니다. 예: /^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/ 하지만 RFC 5322 완전 준수 이메일 검증은 매우 복잡한 정규식이 필요합니다. 실무에서는 기본 형식 검증(@ 기호 유무, 도메인 형식)에는 간단한 정규식을 사용하고, 진정한 유효성 확인은 이메일을 실제로 전송하는 방식을 권장합니다.

탐욕적 수량자와 비탐욕적 수량자의 차이는 무엇인가요?

탐욕적 수량자(*, +, ?, {n,m})는 기본적으로 가능한 한 많이 일치하려고 합니다. 예를 들어 /<.+>/는 '<b>굵게</b>'에서 전체 문자열과 일치합니다. 비탐욕적(게으른) 수량자(*?, +?, ??, {n,m}?)는 가능한 한 적게 일치합니다. /<.+?>/는 '<b>'에만 일치합니다. HTML 파싱이나 따옴표로 묶인 문자열 추출처럼 특정 구분자 안의 콘텐츠를 추출할 때는 일반적으로 비탐욕적 수량자가 필요합니다.