Как удалить знаки препинания из строки в Python?

Пользователь

от jorge , в категории: Python , 3 года назад

Как удалить знаки препинания из строки в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 3 года назад

@jorge  Чтобы удалить все знаки препинания из строки, мы можем воспользоваться методом строки .replace()

1
2
3
4
5
6
7
8
9
import string # Библиотека, в которой мы можем получить массив с знаками пунктуации

string_ = "Что можно встретить в лесу? Помимо деревьев, здесь можно найти животных : белок, лисиц, волков и медведей"

for punc in string.punctuation: # Перебираем каждый знак пунктуации (  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~  )
    string_ = string_.replace(punc, "") # Меняем текущую строку на эту же строку без конкретного знака препинания

print(string_) # Выводим результат
# Вывод : Что можно встретить в лесу Помимо деревьев здесь можно найти животных  белок лисиц волков и медведей



Если мы хотим очистить строку только от конкретных знаков препинания (',', '!', '.', ':') и т.п, то их можно вывести в отдельный массив :


1
2
3
4
5
6
7
8
punctuation = [',', '.', '?', '!', ':']

string_ = "Что можно встретить в лесу? Помимо деревьев, здесь можно найти животных : белок, лисиц, волков и медведей"

for punc in punctuation:
    string_ = string_.replace(punc, "")

print(string_)


Пользователь

от jerrold_langworth , 2 года назад

@jorge 

Вы можете использовать модуль re и функцию sub() для удаления знаков препинания из строки.

1
2
3
4
5
6
import re

string = "Hello, World! How are you?"
string = re.sub(r'[^ws]','',string)
print(string)
# Output: "Hello World How are you"


В приведенном выше коде re.sub(r'[^ws]','',string) ищет все символы, которые не являются буквами, цифрами или пробелами ([^ws]) и заменяет их на пустую строку ('').