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

정규 표현식은 문자열 패턴을 찾고 매칭시키기 위한 강력한 도구입니다. 이를 통해 특정 패턴과 일치하는 문자열을 찾을 수 있으며, 이러한 매칭 결과를 조작하는 것도 가능합니다. 이번 블로그 포스트에서는 Python에서 정규 표현식의 매칭 결과 문자열을 조작하는 여러 가지 방법을 다루어 보겠습니다.

1. re 모듈을 이용한 매칭 결과 추출

Python에서 정규 표현식을 사용하기 위해서는 re 모듈을 import해야 합니다. 이 모듈은 정규 표현식 매칭을 위한 기능들을 제공합니다.

import re

정규 표현식을 사용하여 매칭 결과를 추출하는 방법은 re.search() 함수를 사용하는 것입니다. 이 함수는 주어진 패턴과 일치하는 첫 번째 문자열을 찾아줍니다. 그리고 매칭 결과를 그룹으로 추출할 수 있습니다.

import re

text = "Hello, my name is John. What's your name?"
pattern = r"my name is (\w+)"

match = re.search(pattern, text)
if match:
    name = match.group(1)
    print("Match found: ", match.group(0))
    print("Name:", name)

위의 예제에서는 r"my name is (\w+)"라는 패턴을 사용하여 text 문자열에서 이름을 찾아냅니다. 그룹으로 지정된 (\w+) 부분은 match.group(1)을 통해 추출할 수 있습니다.

2. re.sub()을 이용한 매칭 결과 문자열 대체

정규 표현식을 사용하여 매칭 결과를 조작하는 또 다른 방법은 re.sub() 함수를 이용하는 것입니다. 이 함수는 주어진 패턴과 일치하는 문자열을 다른 문자열로 대체하는 기능을 제공합니다.

import re

text = "Hello, my name is John. What's your name?"
pattern = r"John"

new_text = re.sub(pattern, "Alice", text)
print("Original text:", text)
print("Modified text:", new_text)

위의 예제에서는 text 문자열에서 "John"이라는 부분을 "Alice"로 대체하여 새로운 문자열을 생성합니다. 결과적으로 원본 문자열은 변경되지 않고, 대체된 문자열을 포함하는 새로운 문자열이 생성됩니다.

3. re.findall()을 이용한 모든 매칭 결과 추출

re.findall() 함수를 사용하면 주어진 패턴과 일치하는 모든 문자열을 추출할 수 있습니다. 이 함수는 매칭된 문자열을 리스트로 반환합니다.

import re

text = "The cat in the hat."
pattern = r"\b\w+"

matches = re.findall(pattern, text)
print(matches)

위의 예제에서는 text 문자열에서 단어를 추출하기 위해 r"\b\w+" 패턴을 사용하였습니다. 이 패턴은 단어 경계에 위치한 모든 문자열을 추출합니다. 결과적으로 ["The", "cat", "in", "the", "hat"]와 같은 리스트가 반환됩니다.

정규 표현식을 이용하여 매칭 결과를 추출하고 조작하는 방법에 대해 간단한 예제를 소개해보았습니다. 이를 통해 정규 표현식의 강력함을 활용하여 문자열 데이터를 다룰 수 있습니다. 다양한 정규 표현식 패턴을 활용하여 문자열 조작에 도전해보세요!