티스토리 뷰

반응형

오늘은 파이썬에서 업무 자동화를 위해 필수적인 도구 중 하나인 정규 표현식에 대해 알아보겠습니다. 정규 표현식은 복잡한 문자열 패턴을 식별, 추출, 대체 또는 삭제하는 데 사용되는 매우 강력한 방법입니다. 파이썬에서는 re 모듈을 통해 이 기능을 제공합니다.

1. 정규 표현식의 기초

가. 패턴 매칭: 문자열에서 특정 패턴을 찾는 것으로, 예를 들어 이메일 주소나 전화번호 같은 형식을 갖는 문자열을 찾을 때 유용합니다.

나. 메타문자: 정규 표현식에서 특별한 의미를 가지는 문자들로, 예를 들어 .는 임의의 한 문자를, *는 앞의 문자가 0회 이상 반복되는 패턴을 의미합니다.

다. 이스케이프 문자: \를 사용하여 메타문자를 일반 문자로서 사용할 수 있게 해줍니다.

라. 문자 클래스: [a-z]와 같이 특정한 문자 집합 중 하나를 매치할 때 사용됩니다.

마. 양자화자: 문자가 몇 번 반복되는지 지정합니다. 예를 들어, a{3}은 'a'가 정확히 3번 반복됨을 의미합니다.

바. 그룹화: 괄호 ()를 사용하여 문자열의 일부를 하나의 단위로 묶을 수 있습니다.

사. 앵커: 문자열의 시작(^)과 끝($)을 지정하는 데 사용됩니다.

2. 파이썬 re 모듈의 주요 함수들과 사용 예시

가. re.search(pattern, string)

  • 문자열 내에서 패턴과 일치하는 첫 부분을 검색합니다.
  • 예시: re.search('\d{4}', 'The year 2021')는 '2021'을 반환합니다.

나. re.match(pattern, string)

  • 문자열의 시작이 패턴과 일치하는지 검사합니다.
  • 예시: re.match('Hello', 'Hello World!')는 'Hello'를 반환합니다.

다. re.findall(pattern, string)

  • 문자열에서 패턴과 일치하는 모든 부분을 찾아 리스트로 반환합니다.
  • 예시: re.findall('\d', 'Number1, Number2')는 ['1', '2']를 반환합니다.

라. re.sub(pattern, repl, string)

  • 패턴과 일치하는 부분을 다른 문자열로 대체합니다.
  • 예시: re.sub('\d', '*', 'Number1')는 'Number*'를 반환합니다.

마. re.compile(pattern)

  • 주어진 패턴을 컴파일하여 재사용 가능한 정규 표현식 객체를 생성합니다.
  • 예시: pattern = re.compile('\d{4}')pattern.search('The year 2021')는 '2021'을 반환합니다.

3. 실제 사용 예시

import re

# 이메일 주소 찾기
text = "Contact us at: info@example.com"
email_pattern = '[\w\.-]+@[\w\.-]+'
email = re.search(email_pattern, text)
if email:
    print(email.group())  # info@example.com

정규 표현식은 매우 강력하지만 복잡할 수 있습니다. 따라서, 패턴이 올바르게 작동하는지 테스트하는 것이 중요하며, 온라인 정규 표현식 테스터를 사용하여 패턴을 빠르게 실험해볼 수 있습니다.

정규 표현식을 통해 파이썬에서 문자열 처리를 더 효율적이고 강력하게 할 수 있습니다. 이 도구를 활용하여 업무 자동화를 더욱 강화해보세요!

반응형