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

정규 표현식은 문자열에서 패턴을 찾는 강력한 도구입니다. 파이썬에서는 re 모듈을 통해 정규 표현식을 사용할 수 있습니다. 이번 블로그 포스트에서는 정규 표현식의 매칭 결과 문자열을 조작하는 방법을 알아보겠습니다.

1. re.match로 매칭 결과 얻기

정규 표현식을 사용하여 문자열을 검색하려면 re.match 함수를 사용합니다. 이 함수는 주어진 패턴으로 문자열을 매칭시킬 수 있고, 매칭된 결과를 반환합니다.

import re

pattern = r"hello"
text = "hello world"

match = re.match(pattern, text)
if match:
    print("매칭 성공!")
else:
    print("매칭 실패!")

위의 예제에서는 “hello” 패턴이 “hello world” 문자열에 매칭되는지 확인하고 있습니다. 만약 매칭이 성공하면 “매칭 성공!”을 출력하고, 실패하면 “매칭 실패!”를 출력합니다.

2. 매칭 결과에서 특정 부분 추출하기

정규 표현식의 매칭 결과에서 특정 부분을 추출하려면 group 메서드를 사용합니다. 이 메서드는 매칭 결과에서 지정한 그룹의 값을 반환합니다. 그룹은 괄호를 사용하여 지정할 수 있습니다.

import re

pattern = r"(\d+)-(\d+)-(\d+)"
text = "2022-01-01"

match = re.match(pattern, text)
if match:
    year = match.group(1)
    month = match.group(2)
    day = match.group(3)
    
    print(f"Year: {year}")
    print(f"Month: {month}")
    print(f"Day: {day}")

위의 예제에서는 “(\d+)-(\d+)-(\d+)” 패턴을 사용하여 “2022-01-01” 문자열로부터 연도, 월, 일을 추출하고 있습니다. group 메서드를 사용하여 각 그룹의 값을 변수에 저장한 후 출력합니다.

3. 매칭 결과로 문자열 치환하기

정규 표현식을 사용하여 매칭된 부분을 다른 문자열로 치환하려면 re.sub 함수를 사용합니다. 이 함수는 주어진 패턴과 대체 문자열로 매칭된 부분을 치환합니다.

import re

pattern = r"apple"
text = "I like apple"

new_text = re.sub(pattern, "orange", text)
print(new_text)

위의 예제에서는 “apple” 패턴을 “orange” 문자열로 치환하고 있습니다. “I like apple” 문자열에서 “apple”을 찾아 “orange”로 치환한 후, 결과 문자열인 “I like orange”를 출력합니다.

정규 표현식의 매칭 결과 문자열 조작을 통해 문자열을 더욱 다양하게 처리할 수 있습니다. re 모듈의 다양한 함수와 메서드를 활용하여 정규 표현식을 유연하게 사용해보세요.