Python에서 공백으로 문자열 분할

Rayven Esplanada 2023년1월30일
  1. String split()메서드를 사용하여 Python에서 문자열 분할
  2. re.split()을 사용하여 Python에서 문자열 분할
Python에서 공백으로 문자열 분할

이 튜토리얼은 파이썬에서 구분 기호로 공백으로 문자열을 분할하는 방법을 보여줍니다.

파이썬에서 문자열을 분할하는 것은 사용되는 구분 기호 또는 구분 기호에 따라 단일 문자열을 문자열 배열로 절단하는 것을 의미합니다.

예를 들어 문자열이Hello, World! I am here.가 존재하고 공백으로 구분 기호로 분할하면 다음과 같은 출력이 생성됩니다.

["Hello,", "World!", "I", "am", "here."]

String split()메서드를 사용하여 Python에서 문자열 분할

내장 파이썬 문자열 메소드split()은 공백을 사용하여 문자열을 분할하는 완벽한 솔루션입니다. 기본적으로split()메서드는 공백을 구분 기호로 사용하여 원래 문자열을 분할 한 결과 하위 문자열 배열을 반환합니다.

예를 들어 동일한 문자열 예제Hello, World! I am here.. split()메서드를 사용하여 문자열을 하위 문자열 배열로 분리합니다.

string_list = "Hello, World! I am here.".split()

print(string_list)

예상대로 출력됩니다.

["Hello,", "World!", "I", "am", "here."]

그 외에도split()메소드는 선행 및 후행 공백을 자동으로 제거하고 단일 공백 구분 기호로 처리합니다.

임의의 선행, 후행 및 연속 공백을 포함하도록 이전 예제를 수정 해 보겠습니다.

string_list = "      Hello,   World! I am     here.   ".split()

print(string_list)

split()메소드가 자동으로 처리하는 또 다른 시나리오는 공백 리터럴을 제외하고\t,\n\r로 표시된 탭, 줄 바꿈 및 캐리지 리턴입니다. 언급 된 공백 형식은 트리밍을위한 구분 기호 및 주제로 간주됩니다.

출력:

['Hello,', 'World!', 'I', 'am', 'here.']

예를 들면 :

string_list = " Hello,   World! I am here.\nI am also\there too,\rand here.".split()

print(string_list)

출력:

['Hello,', 'World!', 'I', 'am', 'here.', 'I', 'am', 'also', 'here', 'too,', 'and', 'here.']

이러한 요소를 고려하면 함수를 실행하기 전에 모든 공백을 명시 적으로 다듬는 것에 대해 걱정할 필요가 없습니다. 이것은 가지고있는 편리한 기능입니다.

re.split()을 사용하여 Python에서 문자열 분할

Python RegEx (Regular Expressions) 모듈re에는 내장split()메소드 대신 사용할 수있는 사전 정의 된split()함수도 있습니다. 그러나re.split()은 성능면에서 내장split()메소드에 비해 느립니다.

re.split()함수는 분할 함수를 수행하기 위해 RegEx 문자열과 문자열의 두 가지 주요 매개 변수를받습니다. 공백을 나타내는 RegEx 키워드는\s입니다. \s는 위에서 언급 한 공백 (\n,\t,\r,\f)을 포함한 모든 유형의 공백의 데이터 정렬입니다.

예를 들어, 문자열을 선언하고re.split()을 수행하여 하위 문자열 배열로 분할합니다. 후행 및 선행 공백을 고려하려면 RegEx 문자열에+기호를 추가하여 하나 이상의 연속 공백을 단일 그룹으로 일치시킵니다.

또한 키워드r을 RegEx 문자열에 추가하여 Python이 이스케이프 시퀀스를 적절하게 처리하도록합니다.

import re

exStr = "Hello, World!\nWelcome\tto my   tutorial\rarticle."

print(re.split(r"\s+", exStr))

re.split()대신re.findall()을 사용하여 Python에서 문자열 분할

또는re.findall()도 사용할 수 있습니다. findall()함수는split()과 완전히 반대로 작동합니다. 이 함수는 주어진 RegEx 문자열과 일치하는 모든 하위 문자열을 찾는 반면split()메서드는 RegEx 문자열을 구분 기호로 사용합니다.

findall()함수를 사용하여 공백을 사용하여 문자열을 분할하려면 문자 (\S)를 대문자로 표시하여 공백 키워드\s를 부정합니다. findall()split()과 동일한 매개 변수를 허용합니다.

import re

exStr = "Hello, World!\nWelcome\tto my   tutorial\rarticle."

print(re.findall(r"\S+", exStr))

두 함수 모두 동일한 출력을 생성합니다.

["Hello,", "World!", "Welcome", "to", "my", "tutorial", "article."]

요약하자면 공백을 구분 기호로 사용하여 문자열을 분할하는 가장 좋은 방법은 내장split()메서드입니다. 문자열 객체에 연결되며 기본적으로 선행 및 후행 공백을 고려합니다. 이것을 사용하는 데에도 정규 표현식에 대한 지식이 필요하지 않습니다.

그렇지 않으면,re.split()re.findall()split()메소드의 대체물로 사용할 수 있지만 두 함수 모두 내장split()메소드보다 느리게 수행됩니다.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python String