개발 문서/기타
정규 표현식(Regular Expression)이란?
copg
2025. 3. 12. 12:06
728x90
반응형
정규 표현식(Regular Expression)이란?
정규 표현식(Regex, Regular Expression)은 문자열에서 특정한 규칙을 가진 문자열의 집합을 찾아내기 위한 형식 언어입니다. 프로그래밍에서 텍스트를 다룰 때 매우 강력한 도구로, 문자열 검색, 치환, 분리 등에 주로 사용됩니다.
정규 표현식의 기본 문법
문자 클래스(Character Classes)
- [abc]: a, b, c 중 하나의 문자
- [^abc]: a, b, c를 제외한 문자
- [a-z]: a부터 z까지 소문자 하나
- [A-Z]: A부터 Z까지 대문자 하나
- [0-9]: 숫자 하나
메타 문자(Metacharacters)
- .: 개행 문자를 제외한 모든 문자
- \d: 숫자 (0~9)
- \D: 숫자가 아닌 문자
- \w: 영문자, 숫자, 언더스코어(_)
- \W: 영문자, 숫자, 언더스코어가 아닌 문자
- \s: 공백 문자 (space, tab, 줄바꿈)
- \S: 공백이 아닌 문자
반복자(Quantifiers)
- *: 0번 이상 반복
- +: 1번 이상 반복
- ?: 0번 또는 1번 (없거나 한 번)
- {n}: 정확히 n번 반복
- {n,m}: n번 이상 m번 이하 반복
정규 표현식의 사용 예시
이메일 형식 확인하기
^[\w.-]+@[\w.-]+\.\w{2,3}$
전화번호 형식 확인하기 (예: 010-1234-5678)
^\d{3}-\d{3,4}-\d{4}$
URL 형식 확인하기
^(http|https):\/\/[\w.-]+(\.[a-zA-Z]{2,})$
주요 프로그래밍 언어에서 정규 표현식 사용법
Python에서의 사용 예시
import re
text = \"hello123@example.com\"
pattern = r\"^[\w.-]+@[\w.-]+\.\w{2,3}$\"
if re.match(pattern, text):
print(\"올바른 이메일 형식입니다.\")
else:
print(\"잘못된 이메일 형식입니다.\")
JavaScript에서의 사용 예시
const text = \"hello123@example.com\";
const pattern = /^[\w.-]+@[\w.-]+\.\w{2,3}$/;
if (pattern.test(text)) {
console.log(\"올바른 이메일 형식입니다.\");
} else {
console.log(\"잘못된 이메일 형식입니다.\");
}
정규 표현식을 연습하기 좋은 사이트
- Regexr: 정규 표현식을 테스트하고 실시간으로 결과를 확인할 수 있는 유용한 사이트입니다.
정규 표현식을 작성할 때 주의할 점
- 복잡한 정규 표현식은 가독성을 떨어뜨릴 수 있으므로 주석을 달거나 단계적으로 나누어 작성하는 것이 좋습니다.
- 성능 이슈를 방지하기 위해 너무 광범위하거나 반복적인 표현을 사용할 때 주의가 필요합니다.
- 개발 환경마다 정규 표현식의 지원 방식이 다를 수 있으므로 해당 언어의 공식 문서를 확인하는 것이 좋습니다.
마치며
정규 표현식은 익숙해지면 매우 유용한 도구입니다. 다양한 예제를 통해 연습하고 실무에서 적극 활용하여 텍스트 처리의 효율성을 높여보세요!