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