[파이썬] 정규 표현식의 매칭 결과 문자열 처리
정규 표현식은 문자열을 패턴으로 매칭하고 추출하는 데에 유용한 도구입니다. Python에서는 re
모듈을 사용하여 정규 표현식을 처리할 수 있습니다. 이번 포스트에서는 정규 표현식의 매칭 결과를 다루는 방법에 대해 알아보겠습니다.
1. 매칭된 문자열 추출하기
re
모듈을 사용하여 정규 표현식을 컴파일한 뒤, match()
함수로 문자열을 매칭시킬 수 있습니다. 매칭 결과로는 Match
객체가 반환되며, 이를 활용하여 매칭된 문자열을 추출할 수 있습니다.
import re
pattern = r'(\d{2})-(\d{2})-(\d{4})' # 날짜 패턴: dd-mm-yyyy
text = '오늘은 10-27-2022 입니다.'
match = re.match(pattern, text)
if match:
matched_string = match.group() # 매칭된 전체 문자열
day = match.group(1) # 첫 번째 그룹에 해당하는 문자열
month = match.group(2) # 두 번째 그룹에 해당하는 문자열
year = match.group(3) # 세 번째 그룹에 해당하는 문자열
print(f'매칭된 전체 문자열: {matched_string}')
print(f'일: {day}')
print(f'월: {month}')
print(f'년: {year}')
실행 결과는 다음과 같습니다:
매칭된 전체 문자열: 10-27-2022
일: 10
월: 27
년: 2022
2. 매칭된 문자열 대체하기
정규 표현식을 활용하여 매칭된 문자열을 대체할 수도 있습니다. re
모듈의 sub()
함수를 사용하여 원하는 패턴을 다른 문자열로 치환할 수 있습니다.
import re
pattern = r'\bapple\b' # apple을 찾아서
text = 'I like apple and orange.'
replaced_text = re.sub(pattern, 'banana', text) # banana로 대체
print(replaced_text)
실행 결과는 아래와 같습니다:
I like banana and orange.
3. 매칭된 문자열 분할하기
정규 표현식을 사용하면 매칭된 문자열을 기준으로 텍스트를 분할할 수도 있습니다. re
모듈의 split()
함수를 사용하여 특정 패턴에 따라 문자열을 분할할 수 있습니다.
import re
pattern = r'\s+' # 공백 문자를 기준으로 분할
text = 'Hello World Python'
splitted_text = re.split(pattern, text)
print(splitted_text)
실행 결과는 아래와 같습니다:
['Hello', 'World', 'Python']
마무리
이번 포스트에서는 Python에서 정규 표현식의 매칭 결과를 다루는 방법에 대해 살펴보았습니다. re
모듈의 다양한 함수를 활용하여 매칭된 문자열을 추출하거나 대체하며, 분할하는 작업을 수행할 수 있습니다. 정규 표현식은 문자열 처리를 더욱 효율적으로 할 수 있는 강력한 도구이니, 업무나 개인 프로젝트에서 유용하게 활용해보세요!