[파이썬] 정규 표현식의 매칭 결과 문자열 검색

정규 표현식은 문자열에서 패턴을 찾거나 매칭시키기 위해 사용되는 강력한 도구입니다. 파이썬에서도 내장된 ‘re’ 모듈을 사용하여 정규 표현식을 다룰 수 있습니다. 이번 블로그 포스트에서는 정규 표현식의 매칭 결과를 검색하는 방법에 대해 알아보겠습니다.

re 모듈 import하기

먼저, 정규 표현식을 다루기 위해 re 모듈을 import해야 합니다. 파이썬에서는 기본적으로 제공되는 내장 모듈이기 때문에 별도의 설치가 필요하지 않습니다.

import re

문자열 매칭하기

정규 표현식을 사용하여 문자열을 매칭시키기 위해서는 re.match() 또는 re.search() 함수를 사용해야 합니다.

re.match()

re.match() 함수는 문자열의 처음부터 정규 표현식과 매칭되는 부분을 찾아줍니다. 매칭되는 부분이 없으면 None을 반환합니다.

text = "Hello, World!"
pattern = r"Hello"

result = re.match(pattern, text)
if result:
    print("매칭되었습니다!")
else:
    print("매칭되지 않았습니다!")

re.search()

re.search() 함수는 문자열 전체에서 정규 표현식과 매칭되는 부분을 찾아줍니다. 매칭되는 부분이 있으면 최초로 발견된 부분을 반환하고, 없으면 None을 반환합니다.

text = "Hello, World!"
pattern = r"World"

result = re.search(pattern, text)
if result:
    print("매칭되었습니다!")
else:
    print("매칭되지 않았습니다!")

매칭 결과 가져오기

매칭 결과를 가져오기 위해서는 group() 함수를 사용합니다. group() 함수는 첫 번째 매칭 결과를 반환합니다. 정규 표현식 안에 괄호를 사용하여 그룹을 만들면, 해당 그룹의 매칭 결과를 가져올 수 있습니다.

text = "My email is hello@example.com"
email_pattern = r"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)"

result = re.search(email_pattern, text)
if result:
    email = result.group()
    print("E-mail 주소:", email)
else:
    print("E-mail 주소를 찾을 수 없습니다!")

위 예제에서는 이메일 주소를 찾기 위한 정규 표현식을 사용하였습니다. ()로 그룹을 만들어 group() 함수를 통해 매칭 결과를 가져올 수 있습니다. 출력 결과로 “E-mail 주소: hello@example.com”이 출력됩니다.

정규 표현식을 사용하여 문자열에서 원하는 패턴을 검색하는 방법을 알아보았습니다. 이를 응용하여 각종 데이터를 추출하거나 검증하는 등 다양한 용도로 사용할 수 있습니다. 파이썬의 re 모듈을 활용하여 정규 표현식을 잘 활용해 보세요!