Puntuacion tira con expresiones regulares – python

Necesito usar expresiones regulares para quitar la puntuación al principio y al final de una palabra. Parece que regex sería la mejor opción para esto. No quiero que se elimine la puntuación de palabras como ‘estás’, por lo que no estoy usando .replace (). Gracias de antemano =)

No necesitas expresiones regulares para hacer esta tarea. Utilice str.strip con string.punctuation :

 >>> import string >>> string.punctuation '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' >>> '!Hello.'.strip(string.punctuation) 'Hello' >>> ' '.join(word.strip(string.punctuation) for word in "Hello, world. I'm a boy, you're a girl.".split()) "Hello world I'm a boy you're a girl" 

Puede eliminar la puntuación de un archivo de texto o de un archivo de cadena en particular usando la expresión regular de la siguiente manera:

 new_data=[] with open('/home/rahul/align.txt','r') as f: f1 = f.read() f2 = f1.split() all_words = f2 punctuations = '''!()-[]{};:'"\,<>./?@#$%^&*_~''' # You can add and remove punctuations as per your choice #removing stop words in hungarian text and english text and #display the unpunctuated string # To remove from a string, replace new_data with new_str # new_str = "My name$#@ is . rahul -~" for word in all_words: if word not in punctuations: new_data.append(word) print (new_data) 

PS – Hacer la identificación correctamente según lo requerido. ¡¡Espero que esto ayude!!

Creo que esta función será útil y concisa para eliminar la puntuación:

 import re def remove_punct(text): new_words = [] for word in text: w = re.sub(r'[^\w\s]','',word) #remove everything except words and space#how #to remove underscore as well w = re.sub(r'\_','',w) new_words.append(w) return new_words