본문 바로가기
유용한 정보 조각

정규 표현식(Regex) 파이썬 사용법 완벽 가이드

by 로보찌빠냥 2024. 7. 22.
반응형

정규 표현식(Regular Expressions, Regex)은 특정한 규칙을 가진 문자열의 검색, 추출, 치환 등을 수행하기 위한 강력한 도구입니다. 파이썬에서는 re 모듈을 사용하여 정규 표현식을 다룰 수 있습니다. 이번 포스팅에서는 정규 표현식의 기본 개념부터 파이썬에서의 활용 방법까지 자세히 알아보겠습니다.

정규 표현식(Regex) 파이썬 사용법 완벽 가이드

 

정규 표현식이란?

정규 표현식은 문자열을 정의하는 패턴입니다. 이 패턴을 사용하여 문자열을 검색하거나, 일치하는 문자열을 찾거나, 치환할 수 있습니다. 정규 표현식은 다양한 프로그래밍 언어에서 지원되며, 텍스트 데이터 처리에 매우 유용합니다.

파이썬에서의 정규 표현식

파이썬에서는 re 모듈을 통해 정규 표현식을 사용할 수 있습니다. 이 모듈은 문자열 검색, 치환, 분할 등의 기능을 제공합니다.

re 모듈 임포트

import re

정규 표현식 함수

  1. search(): 문자열 전체를 검색하여 정규식과 일치하는 첫 번째 부분을 반환합니다.
  2. import re pattern = r'\d+' # 숫자에 일치하는 패턴 text = "My number is 12345" match = re.search(pattern, text) if match: print(match.group()) # 12345
  3. match(): 문자열의 시작 부분을 검색하여 정규식과 일치하는 부분을 반환합니다.
  4. import re pattern = r'\d+' text = "12345 is my number" match = re.match(pattern, text) if match: print(match.group()) # 12345
  5. findall(): 정규식과 일치하는 모든 부분을 리스트로 반환합니다.
  6. import re pattern = r'\d+' text = "My numbers are 123 and 456" matches = re.findall(pattern, text) print(matches) # ['123', '456']
  7. finditer(): 정규식과 일치하는 모든 부분을 반복 가능한 객체로 반환합니다.
  8. import re pattern = r'\d+' text = "My numbers are 123 and 456" matches = re.finditer(pattern, text) for match in matches: print(match.group()) # 123, 456
  9. sub(): 정규식과 일치하는 부분을 다른 문자열로 치환합니다.
  10. import re pattern = r'\d+' text = "My number is 12345" result = re.sub(pattern, "XXXXX", text) print(result) # My number is XXXXX

정규 표현식 패턴

  • .: 모든 문자와 일치합니다.
  • ^: 문자열의 시작과 일치합니다.
  • $: 문자열의 끝과 일치합니다.
  • *: 0회 이상 반복과 일치합니다.
  • +: 1회 이상 반복과 일치합니다.
  • ?: 0회 또는 1회 반복과 일치합니다.
  • {m,n}: m회 이상, n회 이하 반복과 일치합니다.
  • [abc]: a, b, c 중 하나와 일치합니다.
  • [^abc]: a, b, c가 아닌 문자와 일치합니다.
  • \d: 숫자와 일치합니다.
  • \D: 숫자가 아닌 문자와 일치합니다.
  • \s: 공백 문자와 일치합니다.
  • \S: 공백이 아닌 문자와 일치합니다.
  • \w: 단어 문자(알파벳, 숫자, 언더스코어)와 일치합니다.
  • \W: 단어 문자가 아닌 문자와 일치합니다.

정규 표현식 예제

다음은 정규 표현식을 사용하여 이메일 주소를 검증하는 예제입니다.

import re

def is_valid_email(email):
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return re.match(pattern, email) is not None

email = "test@example.com"
print(is_valid_email(email))  # True

email = "invalid-email"
print(is_valid_email(email))  # False

이 예제에서는 이메일 주소 형식에 맞는 패턴을 정의하고, 이를 사용하여 입력된 이메일 주소가 유효한지 확인합니다.

결론

정규 표현식은 문자열 처리 작업을 보다 효율적으로 수행할 수 있게 해주는 강력한 도구입니다. 파이썬의 re 모듈을 사용하여 다양한 문자열 검색, 추출, 치환 작업을 손쉽게 할 수 있습니다. 이번 포스팅을 통해 정규 표현식의 기본 개념과 파이썬에서의 활용 방법을 익히고, 실무에 적용해 보시기 바랍니다.

반응형

댓글