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

정규 표현식(regular expression)은 텍스트에서 패턴을 찾기 위해 사용되는 강력한 도구입니다. 이를 통해 특정한 규칙이나 패턴을 가진 문자열을 찾을 수 있으며, 파이썬에서도 정규 표현식을 사용할 수 있습니다. 하지만 정규 표현식을 활용한 매칭 결과에서 실제로 원하는 문자열을 추출하는 방법을 알아보겠습니다.

re 모듈을 사용한 매칭 결과 추출하기

파이썬에서는 re 모듈을 사용하여 정규 표현식을 처리할 수 있습니다. 정규 표현식 패턴과 매칭된 문자열을 추출하기 위해 re 모듈의 search() 또는 findall() 메소드를 사용할 수 있습니다.

import re

text = "Hello, my name is John. I live in New York City."
pattern = r"name is (\w+)"  # 패턴 설정

# search() 메소드를 사용하여 첫 번째 매칭 결과를 추출
match = re.search(pattern, text)
if match:
    result = match.group(1)
    print(result)  # 출력: John

# findall() 메소드를 사용하여 모든 매칭 결과를 추출
matches = re.findall(pattern, text)
print(matches)  # 출력: ['John']

위의 예시에서는 텍스트에서 “name is” 뒤에 오는 단어를 추출하는 패턴을 설정하였습니다. search() 메소드는 첫 번째 매칭 결과만 추출하여 group(1) 메소드를 사용하여 결과를 가져옵니다. findall() 메소드는 모든 매칭 결과를 추출하여 리스트로 반환합니다.

re 모듈을 사용한 대소문자 구분 없는 매칭 결과 추출하기

대소문자 구분 없이 매칭 결과를 추출하고 싶다면, re 모듈의 search() 메소드에 re.IGNORECASE 플래그를 추가하면 됩니다.

import re

text = "Hello, my name is John. I live in New York City."
pattern = r"name is (\w+)"  # 패턴 설정

# 대소문자 구분 없이 매칭 결과 추출
match = re.search(pattern, text, re.IGNORECASE)
if match:
    result = match.group(1)
    print(result)  # 출력: John

위의 예시에서는 패턴에 re.IGNORECASE 플래그를 추가하여 대소문자 구분 없이 매칭 결과를 추출합니다.

요약

정규 표현식의 매칭 결과 문자열 추출은 re 모듈의 search() 또는 findall() 메소드를 사용하여 원하는 패턴과 매칭된 문자열을 추출할 수 있습니다. 추가로 re.IGNORECASE 플래그를 사용하여 대소문자 구분 없이 매칭 결과를 추출할 수도 있습니다. 이를 통해 텍스트에서 필요한 정보를 추출하는 작업을 더욱 간편하게 수행할 수 있습니다.


References