파이썬에서 문자열을 공백(스페이스, 탭, 줄바꿈 등)을 기준으로 나누는 작업은 텍스트 데이터를 처리할 때 매우 자주 사용되는 기능입니다. 이 글에서는 대표적인 두 가지 방법을 예제와 함께 살펴보겠습니다.
1. split() 메서드 사용하기
가장 간단하고 널리 쓰이는 방법은 문자열 클래스의 split() 메서드를 활용하는 것입니다. 이 메서드는 별도의 구분자를 지정하지 않으면 기본값으로 공백 문자를 기준으로 문자열을 분할합니다. 연속된 여러 개의 공백이 있어도 자동으로 하나의 구분자로 처리되기 때문에 별도의 전처리 없이 깔끔하게 결과를 얻을 수 있습니다.
>>> "Please split this string".split()
['Please', 'split', 'this', 'string']
위 예제에서 볼 수 있듯이, split()은 호출된 문자열을 공백 위치에서 잘라 단어들의 리스트(list)로 반환합니다. 탭이나 줄바꿈 문자 역시 공백으로 간주하여 분할해 주므로, 문장이나 문서 단위의 텍스트를 단어별로 처리할 때 특히 유용합니다.
2. 정규표현식 re.split() 사용하기
정규표현식 모듈인 re를 사용하는 방법도 있습니다. re.split() 함수에 정규식 패턴 '\s+'를 구분자로 지정하면, 하나 이상의 연속된 공백 문자를 기준으로 문자열을 분할할 수 있습니다.
>>> import re
>>> re.split('\s+', 'Please split this string')
['Please', 'split', 'this', 'string']
여기서 \s는 스페이스, 탭, 줄바꿈 등 모든 종류의 공백 문자를 의미하며, 뒤에 붙은 +는 해당 문자가 한 번 이상 연속해서 나타나는 경우를 모두 매칭하라는 뜻입니다.
어떤 방법을 선택해야 할까?
두 방법 모두 동일한 결과를 반환하지만, 일반적으로 split() 메서드가 더 빠르고 코드도 간결합니다. 따라서 단순히 공백 기준으로 문자열을 나누는 것이 목적이라면 split()을 사용하는 것이 좋습니다. 반면, 탭과 스페이스를 다르게 처리하거나 더 복잡한 패턴 기반의 분할이 필요한 경우에는 정규표현식을 활용한 re.split()이 유용합니다.