[python] 정규표현식을 이용한 문자열 검색

정규표현식은 문자열에서 패턴을 찾거나 매칭하기 위한 강력한 도구입니다. Python의 re 모듈을 사용하여 정규표현식을 쉽게 적용할 수 있습니다.

정규표현식 패턴 작성

문자열 검색을 위해 먼저 정규표현식 패턴을 작성해야 합니다. 패턴은 검색하고자 하는 문자열 패턴을 기술합니다. 예를 들어, 이메일 주소를 검색하기 위한 패턴은 다음과 같을 수 있습니다.

pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b'

위의 패턴은 이메일 주소의 일반적인 형식을 나타냅니다. 이해하기 쉽도록 패턴에 대한 각 부분을 설명하겠습니다:

문자열 검색

이제 정규표현식 패턴을 작성했으므로, 이를 사용하여 문자열에서 검색을 수행할 수 있습니다. Python의 re 모듈의 search() 함수를 사용하여 문자열 검색을 수행할 수 있습니다.

import re

text = "이메일 주소는 abc@example.com 입니다."
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b'

match = re.search(pattern, text)
if match:
    print("이메일 주소를 찾았습니다:", match.group())
else:
    print("이메일 주소를 찾을 수 없습니다.")

위의 예제에서는 주어진 텍스트 내에서 이메일 주소를 검색하는 방법을 보여줍니다. 검색 결과는 match 객체로 반환되며, group() 메서드를 사용하여 검색된 문자열을 가져올 수 있습니다.

여러 개의 문자열 검색

정규표현식을 사용하여 한 번에 여러 개의 문자열을 검색할 수도 있습니다. findall() 함수를 사용하여 검색된 모든 결과를 리스트로 반환할 수 있습니다.

import re

text = "이메일 주소는 abc@example.com과 def@example.com입니다."
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b'

matches = re.findall(pattern, text)
if matches:
    print("검색된 이메일 주소 목록:")
    for match in matches:
        print(match)
else:
    print("이메일 주소를 찾을 수 없습니다.")

위의 예제에서는 주어진 텍스트에서 모든 이메일 주소를 검색하고, 검색된 결과 목록을 출력하는 방법을 보여줍니다.

결론

Python의 re 모듈을 사용하여 정규표현식을 이용한 문자열 검색을 수행할 수 있습니다. 정규표현식을 잘 활용하면 특정 패턴을 가진 문자열을 빠르고 정확하게 찾을 수 있습니다.