Мне нужно использовать регулярное выражение, чтобы убрать пунктуацию в начале и конце слова. Кажется, регулярное выражение будет лучшим вариантом для этого. Я не хочу, чтобы пунктуация удалялась из слов типа "ты", поэтому я не использую .replace().
Пунктуация полосы с регулярным выражением - python
Ответ 1
Вам не нужно регулярное выражение для выполнения этой задачи. Используйте str.strip
с помощью string.punctuation
:
>>> import string
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>[email protected][\\]^_`{|}~'
>>> '!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"
Ответ 2
Вы можете удалить пунктуацию из текстового файла или конкретного строкового файла, используя регулярное выражение следующим образом:
new_data=[]
with open('/home/rahul/align.txt','r') as f:
f1 = f.read()
f2 = f1.split()
all_words = f2
punctuations = '''!()-[]{};:'"\,<>./[email protected]#$%^&*_~'''
# 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 - Сделайте идентификацию правильно, как требуется. Надеюсь это поможет!!
Ответ 3
Я думаю, что эта функция будет полезна и кратка в удалении пунктуации:
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