MODOO HUB ← 모두의 툴
🌐 EN

정규식
테스터

정규식을 실시간으로 테스트하고 매칭 결과를 확인하세요

/ /
플래그:
테스트 문자열
매칭 하이라이트
자주 쓰는 정규식

정규식(Regex)이란?

정규식(Regular Expression)은 문자열에서 특정 패턴을 찾거나 검증하는 문자 패턴입니다. 이메일, 전화번호, URL 형식 검증, 문자열 추출 등에 활용됩니다.

활용 예시

자주 묻는 질문

Q. g 플래그는 무엇인가요?
A. global 플래그로 문자열 전체에서 패턴과 일치하는 모든 항목을 찾습니다. g 없이는 첫 번째 일치만 반환합니다.

Q. 한글을 매칭하는 정규식은?
A. [가-힣]+ 를 사용하면 한글 문자를 매칭할 수 있습니다.

Q. 이메일 유효성 검사 정규식은?
A. 프리셋에서 "이메일"을 클릭하면 바로 적용됩니다.

Q. 정규식 특수문자를 그대로 매칭하려면?
A. 백슬래시로 이스케이프합니다. 예) 점(.)을 매칭하려면 \. 을 사용합니다.

Q. i 플래그는 무엇인가요?
A. ignoreCase 플래그로 대소문자를 구분하지 않고 매칭합니다. /hello/i 는 Hello, HELLO, hello 모두 일치합니다.

Q. 수량자(quantifier)란?
A. 패턴 반복 횟수를 지정합니다. * (0회 이상), + (1회 이상), ? (0 또는 1회), {n} (정확히 n회), {n,m} (n~m회). 예) \d{3}은 숫자 3자리.

Q. 캡처 그룹과 비캡처 그룹의 차이는?
A. (abc)는 캡처 그룹으로 일치한 내용을 $1 등으로 참조합니다. (?:abc)는 비캡처 그룹으로 그룹화만 하고 참조하지 않아 성능에 유리합니다.

Q. 룩어헤드(lookahead)란?
A. 특정 패턴 뒤에 오는 조건으로 매칭을 제한합니다. (?=...)는 긍정 룩어헤드, (?!...)는 부정 룩어헤드. 예) \d+(?=원)은 '원' 앞의 숫자만 매칭.

Q. m(multiline) 플래그는 어떻게 작동하나요?
A. m 플래그를 사용하면 ^와 $가 문자열 전체의 시작/끝이 아닌 각 줄의 시작/끝과 매칭됩니다. 여러 줄에 걸친 텍스트에서 줄별로 검증할 때 유용합니다. 예) /^\d+$/m는 여러 줄 중 숫자만 있는 줄을 찾습니다.

Q. 정규식으로 문자열을 치환(replace)하는 방법은?
A. JavaScript: str.replace(/패턴/g, 치환값) 또는 str.replaceAll(). 캡처 그룹 참조는 $1, $2로. 함수형 치환: replace(/패턴/g, (match, g1) => g1.toUpperCase()). 예) "hello world".replace(/(\w+)/g, match => match.toUpperCase()).

Q. 정규식과 입력값 보안에 주의할 점은?
A. 사용자 입력을 정규식에 직접 삽입하면 ReDoS(정규식 서비스 거부) 공격에 취약합니다. 반드시 특수문자를 이스케이프하세요: str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"). 또한 정규식 자체를 사용자가 입력하게 허용할 때는 실행 시간 제한을 두세요.

Q. 정규식 플래그 u(unicode)는 언제 사용하나요?
A. u 플래그는 유니코드 완전 지원 모드로, 이모지·4바이트 문자(서로게이트 페어)를 올바르게 처리합니다. /./u 는 이모지 하나를 하나의 문자로 인식합니다. /./없이는 이모지가 두 코드 유닛으로 분리됩니다. 유니코드 속성 이스케이프 \p{Letter}도 u 플래그와 함께 사용합니다.