Как заменить знаки препинания на строку python?
Я хотел бы ЗАМЕНИТЬ (а не УДАЛИТЬ) все знаки препинания символом "" в строке в python.
Есть ли что-то эффективное от этого вкуса:
text = text.translate(string.maketrans("",""), string.punctuation)
спасибо
Регистр
Ответы
Ответ 1
Этот ответ предназначен для Python 2 и будет работать только для строк ASCII:
Строковый модуль содержит две вещи, которые помогут вам: список знаков препинания и функция "maketrans". Вот как вы можете их использовать:
import string
replace_punctuation = string.maketrans(string.punctuation, ' '*len(string.punctuation))
text = text.translate(replace_punctuation)
Ответ 2
Модифицированное решение из Лучший способ преградить пунктуацию из строки в Python
import string
import re
regex = re.compile('[%s]' % re.escape(string.punctuation))
out = regex.sub(' ', "This is, fortunately. A Test! string")
# out = 'This is fortunately A Test string'
Ответ 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 & место, если вы здесь