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

정규 표현식은 문자열에서 패턴을 찾고 매칭하는 데 사용되는 강력한 도구입니다. 이를 통해 텍스트 데이터를 검색, 추출 또는 변형할 수 있습니다. 이번 블로그 포스트에서는 Python에서 정규 표현식의 매칭 결과 문자열을 결합하는 방법에 대해 알아보겠습니다.

re 모듈

Python에서 정규 표현식을 사용하려면 re 모듈을 import해야 합니다. re 모듈은 정규 표현식을 처리해주는 다양한 함수와 메서드를 제공합니다.

import re

re.match()re.search()

re.match() 함수는 문자열의 처음부터 정규 표현식과 매치되는지 검사합니다. 매치되는 패턴이 문자열의 처음에서 발견되지 않을 경우 None을 반환합니다.

re.search() 함수는 문자열을 훑어서 정규 표현식과 매치되는 첫 번째 패턴을 찾습니다.

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

match_result = re.match(pattern, text)
search_result = re.search(pattern, text)

매칭 결과 문자열 결합

정규 표현식의 매칭 결과로 얻은 문자열을 결합하는 방법은 다양합니다.

group()

group() 메서드는 매칭된 문자열을 반환합니다.

match_result.group()
# Output: 'Hello'

groups()

groups() 메서드는 매칭된 문자열 중 괄호로 묶인 그룹들을 튜플 형태로 반환합니다.

text = "Hello, World!"
pattern = "(Hello), (World)"

search_result = re.search(pattern, text)
search_result.groups()
# Output: ('Hello', 'World')

group(n)

group(n) 메서드는 매칭된 문자열 중 n번째 그룹을 반환합니다.

search_result.group(1)
# Output: 'Hello'

groupdict()

groupdict() 메서드는 매칭된 문자열 중 이름이 지정된 그룹에 해당하는 부분을 딕셔너리 형태로 반환합니다.

text = "Hello, Alice!"
pattern = "(Hello), (?P<name>\w+)"

search_result = re.search(pattern, text)
search_result.groupdict()
# Output: {'name': 'Alice'}

findall()

findall() 함수는 정규 표현식과 매칭되는 모든 부분을 리스트 형태로 반환합니다.

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

findall_result = re.findall(pattern, text)
# Output: ['Hello', 'Hello']

sub()

sub() 함수는 매칭된 부분을 다른 문자열로 치환합니다. 첫 번째 인자로는 바꾸고자 하는 문자열을, 두 번째 인자로는 대상 문자열을 넣습니다.

text = "Hello, Alice!"
pattern = "(Alice)"

sub_result = re.sub(pattern, "Bob", text)
# Output: 'Hello, Bob!'

split()

split() 함수는 매칭된 부분을 구분자로 사용하여 문자열을 나눕니다.

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

split_result = re.split(pattern, text)
# Output: ['Hello', 'World!']

마무리

Python의 re 모듈을 사용하여 정규 표현식의 매칭 결과 문자열을 결합하는 방법에 대해 알아보았습니다. 매칭 결과를 다양한 방식으로 형태를 바꾸거나 원하는 형태로 추출하고자 할 때는 위에서 소개한 메서드와 함수를 유용하게 사용할 수 있습니다. 더 복잡한 패턴을 처리하고자 할 때는 정규 표현식 문법을 자세히 공부하는 것이 필요합니다.