Подтвердить что ты не робот

Как заменить знаки препинания на строку python?

Я хотел бы ЗАМЕНИТЬ (а не УДАЛИТЬ) все знаки препинания символом "" в строке в python. Есть ли что-то эффективное от этого вкуса:

text = text.translate(string.maketrans("",""), string.punctuation)

спасибо Регистр

4b9b3361

Ответ 1

Этот ответ предназначен для Python 2 и будет работать только для строк ASCII:

Строковый модуль содержит две вещи, которые помогут вам: список знаков препинания и функция "maketrans". Вот как вы можете их использовать:

import string
replace_punctuation = string.maketrans(string.punctuation, ' '*len(string.punctuation))
text = text.translate(replace_punctuation)

Ответ 3

заменить на ''? какая разница между переводом всех ';' в '' и удалить все ';'? Здесь нужно удалить все ';'

s = 'dsda;;dsd;sad'
table = string.maketrans('','')
string.translate(s, table, ';')

и вы можете сделать свою замену с помощью перевода

Ответ 4

В моем конкретном ключе я удалил "+" и "&". из списка препинания:

all_punctuations = string.punctuation
selected_punctuations = re.sub(r'(\&|\+)', "", all_punctuations)
print selected_punctuations

str = "he+llo* ithis& place% if you * here @@"
punctuation_regex = re.compile('[%s]' % re.escape(selected_punctuations))
punc_free = punctuation_regex.sub("",str)
print punc_free

результат: he + llo ithis & место, если вы здесь