Regex 테스터 & 설명기 — 무료 온라인 도구
실시간 매치 하이라이팅, 그룹 캡처, 각 부분의 설명으로 정규표현식을 테스트합니다.
치트시트 — 클릭하여 삽입
정규표현식이란?
정규표현식(regex 또는 regexp)은 검색 패턴을 정의하는 문자 시퀀스입니다. 문자열 검색, 유효성 검사, 텍스트 추출 및 치환에 사용됩니다. Regex는 거의 모든 프로그래밍 언어에서 지원되며 텍스트 처리 작업을 하는 모든 개발자에게 필수적인 도구입니다.
Regex 구문 빠른 참조
.— 줄바꿈을 제외한 모든 문자와 일치^/$— 문자열(또는 멀티라인 모드에서 줄)의 시작 / 끝*/+/?— 0개 이상 / 1개 이상 / 0개 또는 1개{n,m}— n개에서 m개 사이의 반복[abc]— 문자 클래스 — a, b 또는 c와 일치[^abc]— 부정 문자 클래스(abc)— 캡처 그룹(?:abc)— 비캡처 그룹\d/\w/\s— 숫자 / 단어 문자 / 공백a|b— 선택 — a 또는 b와 일치
일반적인 Regex 패턴
- 이메일:
[\w.+-]+@[\w-]+\.[a-zA-Z]{2,} - URL:
https?://[\w\-._~:/?#[\]@!$&'()*+,;=%]+ - IPv4:
(\d{1,3}\.){3}\d{1,3} - 전화번호 (미국):
(\+1\s?)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4} - Hex 색상:
#([a-fA-F0-9]{6}|[a-fA-F0-9]{3}) - 날짜 (YYYY-MM-DD):
\d{4}-\d{2}-\d{2}
정규표현식에 대한 자주 묻는 질문
정규표현식에서 .*와 .+의 차이점은 무엇인가요?
별표(*)는 앞의 요소가 "0개 이상"을 의미하고, 더하기(+)는 "1개 이상"을 의미합니다. 패턴 .*는 빈 문자열을 포함한 모든 문자열과 일치하며, .+는 최소 하나의 문자가 필요합니다. 둘 다 기본적으로 탐욕적(greedy)으로 가능한 많이 매치합니다. ?를 추가하면 게으른(lazy) 매칭이 됩니다(가능한 적게 매치): .*?와 .+?.
정규표현식 플래그 g, i, m, s는 무엇을 하나요?
g(global) 플래그는 첫 번째에서 멈추지 않고 모든 매치를 찾습니다. i 플래그는 대소문자를 무시합니다. m(multiline) 플래그는 ^와 $가 전체 문자열이 아닌 각 줄의 시작과 끝과 일치하게 합니다. s(dotAll) 플래그는 점이 줄바꿈 문자도 일치하게 합니다. 필요에 따라 플래그를 결합하세요: /pattern/gim.
리터럴 점, 괄호 또는 기타 특수 문자를 어떻게 매칭하나요?
백슬래시로 특수 regex 문자를 이스케이프합니다. 리터럴 점은 .입니다 (백슬래시 없이 점은 모든 문자와 일치합니다). 리터럴 괄호는 (와 )입니다. 이스케이프가 필요한 다른 문자: ^ $ | ? * + { } [ ]. 예를 들어 URL example.com을 그대로 매칭하려면 /example.com/으로 작성하세요 — 그렇지 않으면 점이 모든 문자와 일치합니다.
탐욕적(greedy) 수량자와 게으른(lazy) 수량자의 차이점은 무엇인가요?
탐욕적 수량자(*, +, {n,m})는 전체 패턴이 여전히 일치하면서 가능한 많이 매치하려고 합니다. 게으른(비탐욕적) 수량자(*?, +?, {n,m}?)는 가능한 적게 매치합니다. 예를 들어 <b>bold</b>에서 탐욕적 /<.*>/는 전체 문자열과 일치하지만, 게으른 /<.*?>/는 <b>만 일치합니다.
관련 개발자 도구
- Cron 표현식 설명기 — Cron 구문 파싱 및 다음 실행 시간 확인
- Git 명령어 검색기 — 20개 이상의 일반적인 시나리오에 맞는 정확한 Git 명령어 찾기
- JWT 디코더 & 검사기 — JWT 토큰 디코딩, 헤더, 페이로드, 클레임 검사
- AI 토큰 카운터 — GPT-4o, Claude, Gemini 토큰 수 계산 및 비용 추정
- 모든 무료 개발자 도구 보기