포스트

파이썬에서 다중 구분자로 문자열 나누기

문제 상황 설명

파이썬에서 문자열을 나누는 일은 일반적으로 split 메서드를 사용해서 쉽게 할 수 있습니다. 하지만 문제는 여러 가지 구분자(delimiters)를 사용해야 할 경우입니다. split 메서드는 하나의 구분자만 지원하기 때문에 다중 구분자를 처리할 때는 별도의 방법을 찾아야 합니다.

다중 구분자를 처리하는 방법

re.split() 사용하기

re 모듈의 split 함수를 사용하면 여러 구분자를 사용할 수 있습니다. 예를 들어, 문자열에서 공백 또는 쉼표 또는 세미콜론으로 구분된 단어들을 추출하려면 다음과 같이 할 수 있습니다.

1
2
3
4
import re

text = "apple banana,orange;cherry"
result = re.split(r'[;,\s]', text)

re.split()에서는 정규 표현식을 사용합니다. 여기서 \s는 공백을 의미하며, ;,는 각각 세미콜론과 쉼표입니다.

리스트 컴프리헨션 사용하기

다른 방법으로는 split 메서드를 여러 번 사용하고 그 결과를 조합하는 방법이 있습니다. 이를 위해 리스트 컴프리헨션을 사용할 수 있습니다.

1
2
text = "apple banana,orange;cherry"
result = [word for delim in [' ', ',', ';'] for word in text.split(delim) if word]

이 코드에서는 구분자가 ' ', ',', ';' 세 가지입니다. 리스트 컴프리헨션을 통해 각 구분자로 문자열을 나누고 결과를 하나로 합칩니다.

코드에서 나타난 에러

본 문제 상황에서 특별한 에러 코드는 없습니다. 다만, re.split()을 사용할 때 정규 표현식의 문법에 주의해야 합니다.

결론

다중 구분자를 처리하는 것은 단순히 split 메서드를 사용하는 것보다 복잡할 수 있습니다. re.split() 함수 또는 리스트 컴프리헨션을 사용하면 이 문제를 효과적으로 해결할 수 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.