Python | Extraer palabras de una string dada

A veces nos encontramos con situaciones en las que necesitamos obtener todas las palabras presentes en la string, esto puede ser una tarea tediosa si se realiza con el método nativo. Por lo tanto, tener taquigrafías para realizar esta tarea siempre es útil. Además, este artículo también incluye los casos en los que se deben ignorar los signos de puntuación.
Método #1: Usar split() 
Usando la función split, podemos dividir la string en una lista de palabras y este es el método más genérico y recomendado si se desea realizar esta tarea en particular. Pero el inconveniente es que falla en los casos en que la string contiene signos de puntuación.
 

Python3

# Python3 code to demonstrate
# to extract words from string
# using split()
 
# initializing string 
test_string = "Geeksforgeeks is best Computer Science Portal"
 
# printing original string
print ("The original string is : " +  test_string)
 
# using split()
# to extract words from string
res = test_string.split()
 
# printing result
print ("The list of words is : " +  str(res))
Salida: 
La string original es: Geeksforgeeks es el mejor portal de informática 
. La lista de palabras es: [‘Geeksforgeeks’, ‘es’, ‘mejor’, ‘Informática’, ‘Ciencia’, ‘Portal’] 
 

  
Método n.º 2: uso de expresiones regulares (findall()) 
En los casos que contienen todos los caracteres especiales y signos de puntuación, como se mencionó anteriormente, el método convencional de encontrar palabras en una string mediante división puede fallar y, por lo tanto, requiere expresiones regulares para realizar esta tarea. La función findall devuelve la lista después de filtrar la string y extraer palabras ignorando los signos de puntuación.
 

Python3

# Python3 code to demonstrate
# to extract words from string
# using regex( findall() )
import re
 
# initializing string 
test_string = "Geeksforgeeks,    is best @# Computer Science Portal.!!!"
 
# printing original string
print ("The original string is : " +  test_string)
 
# using regex( findall() )
# to extract words from string
res = re.findall(r'\w+', test_string)
 
# printing result
print ("The list of words is : " +  str(res))
Salida: 
La string original es: Geeksforgeeks, es el mejor @# Computer Science Portal.!!! 
La lista de palabras es: [‘Geeksforgeeks’, ‘is’, ‘best’, ‘Computer’, ‘Science’, ‘Portal’] 
 

  
Método #3: Usar regex() + string.punctuation 
Este método también usó expresiones regulares, pero la función de string para obtener todos los signos de puntuación se usa para ignorar todos los signos de puntuación y obtener la string de resultados filtrada.
 

Python3

# Python3 code to demonstrate
# to extract words from string
# using regex() + string.punctuation
import re
import string
 
# initializing string 
test_string = "Geeksforgeeks,    is best @# Computer Science Portal.!!!"
 
# printing original string
print ("The original string is : " +  test_string)
 
# using regex() + string.punctuation
# to extract words from string
res = re.sub('['+string.punctuation+']', '', test_string).split()
 
# printing result
print ("The list of words is : " +  str(res))
Salida: 
La string original es: Geeksforgeeks, es el mejor @# Computer Science Portal.!!! 
La lista de palabras es: [‘Geeksforgeeks’, ‘is’, ‘best’, ‘Computer’, ‘Science’, ‘Portal’] 
 

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *