Python에서 여러 구분자로 문자열 분리하기
파이썬에서 하나의 문자열을 쉼표, 세미콜론, 별표처럼 서로 다른 여러 구분자를 기준으로 나누려면 re 모듈의 re.split(delimiter, str) 메서드를 활용하면 됩니다.
이 메서드는 두 가지 인자를 받습니다.
- delimiter — 구분자를 정의하는 정규 표현식(regex)
- str — 분리하고자 하는 대상 문자열
기본 사용 예제
a='Beautiful, is; better*than\nugly'
import re
print(re.split('; |, |\*|\n',a))실행 결과는 다음과 같습니다.
['Beautiful', 'is', 'better', 'than', 'ugly']
정규 표현식 패턴 해설
위 예제에서 사용한 '; |, |\*|\n' 패턴은 네 가지 구분 조건을 의미합니다.
;— 세미콜론 뒤에 공백이 오는 경우,— 쉼표 뒤에 공백이 오는 경우\*— 별표(*) 문자 (정규식 특수문자이므로 백슬래시로 이스케이프)\n— 줄바꿈 문자
각 구분자는 파이프(|) 즉, OR 연산자로 연결되어 있으므로 문자열을 탐색하는 도중 이 패턴 중 하나라도 일치하면 해당 지점을 경계로 문자열이 잘립니다. 그 결과 리스트에는 구분 기호가 제거된 단어들만 깔끔하게 남게 됩니다.
이 방식은 데이터 전처리나 로그 파싱처럼 입력 형식이 일정하지 않은 문자열을 다룰 때 특히 유용합니다.