정규식 테스터 계산
플래그: g(전체), i(대소문자무시), m(여러줄)
자주 쓰는 패턴
사용 방법
-
1
테스트할 정규표현식 패턴을 입력창에 작성합니다.
-
2
검사할 본문 텍스트를 입력합니다.
-
3
패턴에 매칭되는 텍스트가 강조 표시되는지 확인합니다.
정규식(Regular Expression)이란?
정규식(Regex/RegExp)은 특정 규칙을 가진 문자열 패턴을 검색·대체·추출하기 위한 표현 언어입니다. 이메일·전화번호 유효성 검사, 텍스트 파싱, 로그 분석 등 다양한 분야에서 활용되며, 개발 생산성을 크게 향상시킬 수 있습니다.
자주 사용하는 정규식 메타문자
| 메타문자 | 설명 | 예시 |
| . | 임의의 한 글자 (줄바꿈 제외) | a.c → aac, abc, acc |
| * | 앞 문자 0번 이상 반복 | ab*c → ac, abc, abbc |
| + | 앞 문자 1번 이상 반복 | ab+c → abc, abbc (ac 불일치) |
| ? | 앞 문자 0번 또는 1번 | colou?r → color, colour |
| ^ | 문자열 시작 | ^start → "start of line" |
| $ | 문자열 끝 | end$ → "the end" |
| [] | 대괄호 안 문자 중 하나 | [0-9] → 모든 숫자 |
| {} | 앞 문자 지정 횟수 반복 | a{2,4} → aa, aaa, aaaa |
실무에서 자주 쓰이는 정규식 패턴
| 구분 | 정규식 패턴 |
| 이메일 주소 | ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$ |
| 한국 휴대폰 번호 | ^010-?[1-9]d{3}-?d{4}$ |
| URL | ^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$ |
| 날짜 (YYYY-MM-DD) | ^d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]d|3[01])$ |
| IPv4 주소 | ^(?:[0-9]{1,3}.){3}[0-9]{1,3}$ |
프로그래밍 언어별 정규식 사용법 차이
| 언어 | 사용 방법 | 주요 함수/메서드 |
| JavaScript | /pattern/flags 리터럴 또는 RegExp 객체 | test(), match(), replace() |
| Python | import re, r"pattern" Raw String 권장 | re.search(), re.findall(), re.sub() |
| Java | Pattern.compile() + Matcher | find(), matches(), replaceAll() |
자주 묻는 질문
Q
정규식 플래그(g, i, m)의 의미는?
g(global)는 문자열 전체에서 모두 찾기, i(ignoreCase)는 대소문자 무시, m(multiline)은 각 줄의 시작·끝을 ^/ 인식하는 플래그입니다.
Q
이메일 검증용 정규식 예시는?
/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/ 패턴이 자주 사용됩니다. 단, 모든 합법적인 이메일을 완벽히 커버하지는 않습니다.
Q
Lookahead(전방탐색)란 무엇인가요?
Lookahead는 특정 패턴 뒤에 오는 문자열을 조건으로 매칭하는 기법입니다. (?=패턴)은 긍정, (?!패턴)은 부정 전방탐색입니다.
Q
캡처 그룹과 비캡처 그룹의 차이는?
()는 캡처 그룹으로 매칭 결과를 저장하고, (?:)는 비캡처 그룹으로 그룹화만 하고 결과를 저장하지 않아 성능이 더 좋습니다.