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

정규 표현식은 문자열에서 특정한 패턴을 매칭해서 검색하거나 조작하는 데에 매우 유용합니다. Python에서는 re 모듈을 사용하여 정규 표현식을 다룰 수 있습니다. 이번 포스트에서는 정규 표현식의 매칭 결과를 문자열로 분리하는 방법에 대해 알아보겠습니다.

re.split() 함수를 사용한 문자열 분리

Python의 re 모듈에는 문자열을 특정 패턴으로 분리하는 split() 함수가 있습니다. 이 함수를 사용하여 정규 표현식의 매칭 결과를 문자열로 분리할 수 있습니다. 다음은 기본적인 사용법입니다:

import re

pattern = r'\s+'  # 공백 문자열을 기준으로 분리
text = 'Hello           World    How     Are   You'  # 분리할 문자열

result = re.split(pattern, text)

print(result)

위 코드에서는 공백 문자열을 기준으로 text를 분리하고 그 결과를 result에 저장한 뒤 출력합니다. 실행 결과는 다음과 같이 나타납니다:

['Hello', 'World', 'How', 'Are', 'You']

정규 표현식을 그룹화하여 분리

re.split() 함수를 사용할 때, 정규 표현식을 그룹화하여 분리하는 방법도 있습니다. 정규 표현식의 그룹화는 괄호로 묶어주는 것으로 이루어집니다. 예를 들어, re.split() 함수로 마침표(.)를 기준으로 문자열을 분리할 때, 마침표를 그대로 유지하고 싶다면 그룹화를 사용해야 합니다:

import re

pattern = r'(\.)'  # 그룹화된 마침표
text = 'Hello. World. How. Are. You'

result = re.split(pattern, text)

print(result)

실행 결과는 다음과 같습니다:

['Hello', '.', ' World', '.', ' How', '.', ' Are', '.', ' You']

그룹화된 마침표는 결과 리스트에 포함되어 있음을 알 수 있습니다.

정규 표현식의 매칭 결과 활용

정규 표현식의 매칭 결과는 분리뿐만 아니라 다양한 용도로 활용할 수 있습니다. re.split() 함수를 사용하여 분리된 결과를 저장한 리스트를 다음과 같이 활용할 수 있습니다:

import re

pattern = r'\s+'  # 공백 문자열을 기준으로 분리
text = 'Hello           World    How     Are   You'

result = re.split(pattern, text)

# 각 단어의 길이를 출력
for word in result:
    print(f"The length of '{word}' is {len(word)}")

위 코드에서는 분리된 각 단어의 길이를 출력하는 예시입니다. 실행 결과는 다음과 같습니다:

The length of 'Hello' is 5
The length of 'World' is 5
The length of 'How' is 3
The length of 'Are' is 3
The length of 'You' is 3

정규 표현식의 매칭 결과를 활용함으로써 문자열을 더욱 다양하게 처리할 수 있습니다.

마무리

Python의 re 모듈을 사용하여 정규 표현식의 매칭 결과 문자열을 분리하는 방법에 대해 알아보았습니다. re.split() 함수를 사용하여 문자열을 원하는 패턴으로 분리할 수 있으며, 매칭 결과를 다양하게 활용하여 문자열을 처리할 수 있습니다. 정규 표현식은 문자열 조작을 간편하게 해주는 강력한 도구이므로, 적절히 활용하면 프로그래밍 작업을 좀 더 효율적으로 처리할 수 있을 것입니다.