[python] 정규표현식을 이용한 문단 추출
정규표현식(Regular Expression)은 문자열에 포함된 패턴을 표현하고 검색하는 데 사용할 수 있는 강력한 도구입니다. 이번 포스트에서는 Python에서 정규표현식을 사용하여 텍스트에서 원하는 문단을 추출하는 방법에 대해 알아보겠습니다.
1. re 모듈 import 하기
Python에서 정규표현식을 사용하기 위해서는 re
모듈을 import 해야 합니다. 다음과 같이 코드를 작성하여 re
모듈을 import 할 수 있습니다.
import re
2. 텍스트에서 문단 추출하기
문단은 일반적으로 여러 줄로 구성되어 있으므로, 다음의 예시 텍스트를 사용하여 문단을 추출하는 방법을 알아보겠습니다.
text = '''
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nullam finibus laoreet mauris, id egestas ante bibendum nec.
Donec posuere mi vitae mi consectetur, vitae molestie metus tincidunt.
Sed nec efficitur eros. Curabitur et mauris in risus ultricies pulvinar.
'''
pattern = r'(?sm)(.+?)(?:\n\s*\n|$)'
paragraphs = re.findall(pattern, text)
위의 코드에서는 정규표현식 패턴인 (?sm)(.+?)(?:\n\s*\n|$)
을 사용하여 텍스트에서 문단을 추출합니다. 이 정규표현식은 다음과 같은 구조를 가지고 있습니다.
(?sm)
: 여러 줄의 텍스트에 대해 매칭을 수행하기 위해s
(dotall) 플래그와m
(multiline) 플래그를 설정합니다.(.+?)
: 임의의 문자열을 나타내는 그룹입니다.?
는 탐욕적 수량자를 비탐욕적 수량자로 변경합니다.(?:\n\s*\n|$)
: 두 번째 그룹은 두 개의 개행 문자(\n
) 사이에 0개 이상의 공백 문자(\s
)가 있는지를 나타내는 패턴입니다.
실행결과를 확인하기 위해 print(paragraphs)
를 추가해보세요. 추출된 각 문단은 리스트에 저장되어 출력될 것입니다.
3. 결과 확인하기
추출된 문단을 확인하기 위해 다음과 같은 코드를 작성하여 문단을 출력할 수 있습니다.
for paragraph in paragraphs:
print(paragraph)
마무리
이렇게 Python의 정규표현식을 이용하여 텍스트에서 문단을 추출하는 방법에 대해 알아보았습니다. 정규표현식은 문자열 처리에 있어서 강력한 도구로 사용될 수 있으므로, 필요한 경우에 적절히 활용해보세요.