Divida uma string por WhiteSpace em Python

Rayven Esplanada 10 outubro 2023
  1. Use o método String split() para dividir uma string em Python
  2. Use re.split() para dividir uma string em Python
Divida uma string por WhiteSpace em Python

Este tutorial demonstrará como dividir uma string por espaços em branco como delimitadores em Python.

Dividir strings em Python significa cortar uma única string em un array de strings, dependendo do delimitador ou separador que está sendo usado.

Por exemplo, se uma string foi inicializada como Hello, World! I am here. existir, dividi-lo com um espaço em branco como um delimitador resultará na seguinte saída.

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

Use o método String split() para dividir uma string em Python

O método de string Python integrado split() é uma solução perfeita para dividir strings usando espaços em branco. Por padrão, o método split() retorna un array de substrings resultante da divisão da string original usando um espaço em branco como delimitador.

Por exemplo, vamos usar o mesmo exemplo de string Hello, World! I am here.. Usaremos o método split() para separar a string em um array de substrings.

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

print(string_list)

O resultado é o esperado:

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

Além disso, o método split() também remove automaticamente os espaços em branco à esquerda e à direita e os trata como um único delimitador de espaço em branco.

Vamos modificar o exemplo anterior para incluir espaços em branco à esquerda, à direita e consecutivos.

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

print(string_list)

Outro cenário que o método split() trata automaticamente são tabulações, novas linhas e retornos de carro denotados com \t, \n e \r além do literal de espaço em branco. Os formatos de espaço em branco mencionados também são considerados delimitadores e assuntos para corte.

Resultado:

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

Por exemplo:

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

print(string_list)

Resultado:

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

Considerando esses fatores, você não precisa se preocupar em cortar explicitamente todos os espaços em branco antes de executar a função. Esta é uma funcionalidade útil de se ter.

Use re.split() para dividir uma string em Python

O módulo Python RegEx (Expressões regulares) re também tem uma função split() predefinida que podemos usar no lugar do método split() integrado. No entanto, observe que re.split() é mais lento em comparação com o método integrado split() em termos de desempenho.

A função re.split() aceita dois parâmetros principais, uma string RegEx e a string para realizar a função de divisão. A palavra-chave RegEx que representa o espaço em branco é \s. \s é um agrupamento de todo tipo de espaço em branco, incluindo os mencionados acima (\n, \t, \r, \f).

Por exemplo, declare uma string e execute re.split() para dividi-la em un array de substrings. Para levar em consideração os espaços em branco à direita e à esquerda, adicione um sinal + à string RegEx para corresponder a um ou mais espaços em branco consecutivos como um único grupo.

Além disso, anexe a palavra-chave r à string RegEx para garantir que o Python processe as sequências de escape apropriadamente.

import re

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

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

Use re.findall() em vez de re.split() para dividir uma string em Python

Alternativamente, re.findall() também pode ser usado. A função findall() funciona ao contrário de split(). Esta função encontra todas as substrings que correspondem à string RegEx fornecida, enquanto o método split() usa a string RegEx como um delimitador.

Para usar a função findall() para dividir a string usando espaços em branco, negue a palavra-chave de espaço em branco \s colocando a letra em maiúscula (\S). findall() aceita os mesmos parâmetros que split().

import re

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

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

Ambas as funções produzirão a mesma Resultado:

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

Em resumo, a melhor e mais ótima maneira de dividir uma string usando espaços em branco como delimitador é o método integrado split(). Ele é anexado ao objeto string e considera os espaços em branco à esquerda e à direita por padrão. Usar isso também não requer nenhum conhecimento de expressões regulares.

Caso contrário, o re.split() e re.findall() podem ser usados ​​como substitutos para o método split(), embora ambas as funções tenham um desempenho mais lento do que o método integrado 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

Artigo relacionado - Python String