Python | Dividir varios caracteres de la string

Mientras codificaba o improvisaba su habilidad de programación, seguramente debe haber encontrado muchos escenarios en los que deseaba usar .split()Python para no dividirse en un solo carácter sino en varios caracteres a la vez. Considere esto como un ejemplo:

"GeeksforGeeks, is an-awesome! website"

El uso .split()de lo anterior dará como resultado

['GeeksforGeeks, ', 'is', 'an-awesome!', 'website']

mientras que el resultado deseado debe ser

['GeeksforGeeks', 'is', 'an', 'awesome', 'website']

En este artículo, veremos algunas formas en las que podemos lograr lo mismo.

Usando re.split()

Este es el método más eficiente y comúnmente utilizado para dividir varios caracteres a la vez. Hace uso de expresiones regulares (expresiones regulares) para esto.

# Python3 code to demonstrate working of 
# Splitting operators in String 
# Using re.split() 
  
import re
  
# initializing string
data = "GeeksforGeeks, is_an-awesome ! website"
  
# printing original string  
print("The original string is : " + data) 
  
# Using re.split() 
# Splitting characters in String 
res = re.split(', |_|-|!', data)
  
# printing result  
print("The list after performing split functionality : " + str(res)) 

Producción:

La string original es: ¡GeeksforGeeks, is_an-awesome! sitio web
La lista después de realizar la funcionalidad dividida: [‘GeeksforGeeks’, ‘is’, ‘an’, ‘awesome’, ‘site’]

La línea re.split(', |_|-|!', data)le dice a Python que divida los datos variables en los caracteres: , o _ o o ! . El símbolo “ | ” representa o.

Hay algunos símbolos en expresiones regulares que se tratan como símbolos especiales y tienen diferentes funciones. Si desea dividir en un símbolo de este tipo, debe escapar de él usando una » \ «(barra invertida). Lista de caracteres especiales que deben escaparse antes de usarlos:

. \ + * ? [ ^ ] $ ( ) { } = !  | : -

Por ejemplo:

import re
newData = "GeeksforGeeks, is_an-awesome ! app + too"
  
# To split "+" use backslash
print(re.split(', |_|-|!|\+', newData))

Producción:

['GeeksforGeeks', ' is', 'an', 'awesome', ' app', 'too']

Nota: Para saber más sobre expresiones regulares , haga clic aquí .

Usando re.findall()

Esta es una forma un poco más arcana pero ahorra tiempo. También hace uso de expresiones regulares como la anterior, pero en lugar de .split()un método, utiliza un método llamado .findall(). Este método encuentra todas las instancias coincidentes y devuelve cada una de ellas en una lista. Esta forma de dividir se usa mejor cuando no conoce los caracteres exactos en los que desea dividir.

# Python3 code to demonstrate working of 
# Splitting operators in String 
# Using re.findall() 
import re
  
  
# initializing string  
data = "This, is - another : example?!"
  
# printing original string  
print("The original string is : " + data) 
  
# Using re.findall() 
# Splitting characters in String 
res = re.findall(r"[\w']+", data)
  
# printing result  
print("The list after performing split functionality : " + str(res)) 

Producción:

La string original es: Esto, es – otro: ¿ejemplo?
La lista después de realizar la funcionalidad dividida: [‘Esto’, ‘es’, ‘otro’, ‘ejemplo’]

Aquí, la palabra clave [\w']+indica que encontrará todas las instancias de alfabetos o guiones bajos (_) uno o más y los devolverá en una lista.
Nota: [\w']+ no se dividirá en un guión bajo ( _ ) ya que busca tanto alfabetos como guiones bajos.
Por ejemplo:

import re
testData = "This, is - underscored _ example?!"
print(re.findall(r"[\w']+", testData))

Producción:

['This', 'is', 'underscored', '_', 'example']

Usando replace() y split()

Esta es una forma muy novata de hacer el split. No hace uso de expresiones regulares y es ineficiente, pero vale la pena intentarlo. Si conoce los caracteres en los que desea dividir, simplemente reemplácelos con un espacio y luego use .split():

# Python code to demonstrate  
# to split strings 
  
# Initial string
data = "Let's_try, this now"
  
# printing original string  
print("The original string is : " + data) 
  
# Using replace() and split() 
# Splitting characters in String  
res = data.replace('_', ' ').replace(', ', ' ').split()
  
# Printing result
print("The list after performing split functionality : " + str(res)) 

Producción:

La string original es: Let’s_try, this now
La lista después de realizar la funcionalidad dividida: [“Vamos”, ‘probemos’, ‘esto’, ‘ahora’]

Clases de personajes

Hoja de trucos Regex en la descripción del personaje

Clase de carácter abreviado representa
\d Cualquier dígito numérico del 0 al 9
\D Cualquier carácter que no sea un dígito numérico del 0 al 9
\w Cualquier letra, dígito numérico o el carácter de subrayado
\W Cualquier carácter que no sea una letra, un dígito numérico o el carácter de subrayado
\s Cualquier espacio, tabulador o carácter de nueva línea
\S Cualquier carácter que no sea un espacio, una tabulación o una nueva línea

Publicación traducida automáticamente

Artículo escrito por agarwalkeshav8399 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *