개발 문서/기타

정규 표현식(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: 정규 표현식을 테스트하고 실시간으로 결과를 확인할 수 있는 유용한 사이트입니다.


정규 표현식을 작성할 때 주의할 점

  • 복잡한 정규 표현식은 가독성을 떨어뜨릴 수 있으므로 주석을 달거나 단계적으로 나누어 작성하는 것이 좋습니다.
  • 성능 이슈를 방지하기 위해 너무 광범위하거나 반복적인 표현을 사용할 때 주의가 필요합니다.
  • 개발 환경마다 정규 표현식의 지원 방식이 다를 수 있으므로 해당 언어의 공식 문서를 확인하는 것이 좋습니다.

마치며

정규 표현식은 익숙해지면 매우 유용한 도구입니다. 다양한 예제를 통해 연습하고 실무에서 적극 활용하여 텍스트 처리의 효율성을 높여보세요!