Oh MyUtils

정규표현식 테스터 - 정규식 테스트 온라인

정규표현식을 실시간으로 테스트하고 디버깅하세요. 캡처 그룹, 구문 강조, 자주 쓰는 패턴 라이브러리와 정규식 치트시트 제공.

자주 묻는 질문

정규 표현식(regex)이란 무엇인가요?

정규 표현식(regex)은 검색 패턴을 정의하는 문자 시퀀스입니다. 문자열 내에서 패턴 매칭에 사용되며, 유효성 검사(이메일, 전화번호), 검색 및 바꾸기, 데이터 추출, 텍스트 파싱 등의 작업을 수행할 수 있습니다. 정규 표현식은 거의 모든 프로그래밍 언어와 텍스트 편집기에서 지원됩니다.

정규 표현식 플래그(g, i, m, s, u)는 무엇을 의미하나요?

정규 표현식 플래그는 패턴 매칭 방식을 수정합니다. 'g'(전역)는 첫 번째 일치뿐만 아니라 모든 일치를 찾습니다. 'i'(대소문자 무시)는 대소문자를 구분하지 않습니다. 'm'(다중 줄)은 ^와 $가 문자열 시작/끝이 아닌 줄 경계와 일치하게 합니다. 's'(dotall)는 .이 줄바꿈 문자와 일치하게 합니다. 'u'(유니코드)는 서로게이트 쌍을 포함한 전체 유니코드 지원을 활성화합니다.

가장 많이 사용되는 정규 표현식 패턴은 무엇인가요?

일반적인 패턴에는 이메일 유효성 검사(^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$), URL 매칭(https?://[\w.-]+), 전화번호(\d{3}-\d{3}-\d{4}), IP 주소(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}), 헥스 색상(#[a-fA-F0-9]{6})이 있습니다. 도구의 일반 패턴 라이브러리를 사용하여 클릭 한 번으로 삽입하세요.

캡처 그룹이란 무엇이며 어떻게 사용하나요?

캡처 그룹은 괄호 ()로 정의되며 일치 항목의 특정 부분을 추출합니다. 예를 들어 '(\d{3})-(\d{4})'에서 그룹 1은 처음 세 자리를, 그룹 2는 마지막 네 자리를 캡처합니다. 추출 없이 그룹화만 필요할 때는 (?:...)를 사용하세요. 명명된 그룹 (?<name>...)은 참조를 더 읽기 쉽게 만듭니다. 치환에서는 $1, $2 또는 $<name>을 사용하여 캡처된 값을 참조합니다.

이 정규 표현식 테스터는 안전한가요?

네. 이 도구는 JavaScript의 내장 RegExp 엔진을 사용하여 100% 브라우저에서 실행됩니다. 패턴이나 테스트 문자열이 서버로 전송되지 않습니다. 데이터는 완전히 사용자 기기에서만 유지됩니다. 또한 복잡한 패턴으로 인한 브라우저 멈춤을 방지하는 타임아웃 보호(ReDoS 보호) 기능이 포함되어 있습니다.

정규 표현식 패턴 테스트를 위한 모범 사례는 무엇인가요?

간단하게 시작하여 점진적으로 복잡성을 추가하세요. 일치하는 예제와 일치하지 않는 예제 모두로 테스트하세요. 'g' 플래그를 사용하여 모든 일치 항목을 확인하세요. 에지 케이스를 확인하세요: 빈 문자열, 특수 문자, 경계 조건. 유효성 검사 패턴의 경우 잘못된 입력도 테스트하세요. 캡처된 값이 필요하지 않을 때는 비캡처 그룹 (?:...)을 사용하세요. 성능 문제를 일으킬 수 있는 탐욕적 수량자(.*, .+)는 가능하면 피하세요.

코드 예제

// Basic regex matching
const pattern = /\d{3}-\d{4}/g;
const text = "Call 555-1234 or 987-6543";
const matches = text.match(pattern);
console.log(matches); // ["555-1234", "987-6543"]

// Using RegExp constructor with flags
const regex = new RegExp("hello", "gi");
const result = "Hello HELLO hello".match(regex);
console.log(result); // ["Hello", "HELLO", "hello"]

// Capture groups
const emailRegex = /([\w.-]+)@([\w.-]+)/;
const email = "user@example.com";
const [, username, domain] = email.match(emailRegex);
console.log(username, domain); // "user" "example.com"

// Replace with capture groups
const formatted = "2026-02-01".replace(/(\d{4})-(\d{2})-(\d{2})/, "$2/$3/$1");
console.log(formatted); // "02/01/2026"

관련 도구