Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 정규식 re.split()로 구분자를 기준으로 문자열 분할하는 방법

re.split() 메서드란?

Python의 re 모듈에서 제공하는 re.split(pattern, string, [maxsplit=0]) 메서드는 지정한 정규식 패턴이 나타나는 위치를 기준으로 문자열을 분할합니다. 일반 문자열의 split()과 달리 정규식 패턴 자체를 구분자로 사용할 수 있어 훨씬 유연한 문자열 처리가 가능하다는 것이 큰 장점입니다.

기본 사용 예제

import re
result = re.split(r'a', 'Dynamics')
print(result)

출력 결과

['Dyn', 'mics']

위 예제에서는 문자열 "Dynamics"를 구분자 'a'를 기준으로 분할했습니다. 패턴이 발견되는 모든 위치에서 문자열이 잘려 리스트 형태로 반환됩니다.

maxsplit 옵션 활용하기

re.split()은 선택적 인자인 maxsplit을 지원합니다. 기본값은 0이며, 이 경우 패턴이 등장하는 모든 위치에서 최대한 분할이 수행됩니다. 반면 maxsplit에 특정 값을 지정하면 해당 횟수만큼만 분할하고 나머지 부분은 하나의 요소로 그대로 남게 됩니다.

maxsplit 없이 전체 분할하기

import re
result = re.split(r'a', 'Dynamics Kinematics')
print(result)

출력 결과

['Dyn', 'mics Kinem', 'tics']

'a'가 등장하는 모든 위치에서 분할이 이루어져 세 개의 요소가 반환되었습니다.

maxsplit=1로 분할 횟수 제한하기

import re
result = re.split(r'i', 'Dynamics Kinematics', maxsplit=1)
print(result)

출력 결과

['Dyn', 'mics Kinematics']

maxsplit을 1로 설정하면 첫 번째 'i'에서만 분할이 수행되어 두 개의 요소만 반환됩니다. 앞선 예제가 세 개의 값을 가진 것과 비교하면, maxsplit 옵션을 통해 분할 횟수를 원하는 대로 제어할 수 있음을 확인할 수 있습니다.