2 простых способа удалить знаки препинания в строках Python
Прежде чем углубиться в концепцию удаления знаков препинания, давайте сначала разберемся с ситуациями, в которых нам нужно удалить знаки препинания.
Когда дело доходит до получения значений данных из API или веб-скрейпинга, мы часто сталкиваемся со значениями данных в файлах JSON, которые содержат буквенно-цифровые строки, а также знаки препинания. Это делает всю строку немного неформатированной.
Это те случаи когда мы чувствуем необходимость устранить или удалить знаки препинания в строке.
Давайте теперь посмотрим на различные способы удаления знаков препинания из String.
1. Удалите знаки препинания с помощью библиотеки регулярных выражений.
Python предоставляет нам библиотеку регулярных выражений для работы со всеми видами регулярных выражений и управления ими.
Нам нужно импортировать приведенную ниже библиотеку для работы с регулярным выражением -
import re
Мы будем использовать re.sub(pattern, replacement, original_string)
для удаления знаков препинания.
re.sub(pattern, replacement, original_string)
- pattern: знаки препинания или шаблон выражений, которые мы хотим заменить.
- replacement: строка, которая будет заменять шаблон.
Пример:
import re
inp_str = "Hello! Folks, we are here to learn, grow and glow!!"
print("Original string:\n" + inp_str)
opt = re.sub(r'[^\w\s]','', inp_str)
print("String after deletion of punctuation marks:\n" + opt)
Кроме того, мы использовали метод re.sub() для замены знаков препинания заменой, предусмотренной как ‘ ‘, то есть пробелом.
Результат:
Original string:
Hello! Folks, we are here to learn, grow and glow!!
String after deletion of punctuation marks:
Hello Folks we are here to learn grow and glow
2. Использование цикла Python для удаления знаков препинания.
Циклы Python также можно использовать для удаления знаков препинания из строки, как показано ниже:
- Сохраните все знаки препинания в строке.
- Создайте цикл for и создайте оператор if для каждой итерации так, чтобы при обнаружении символа пунктуации он заменялся пробелом.
Попробуем разобраться в описанном выше методе на примере.
Пример:
import re
inp_str = "Hello! Folks, we are here to learn, grow and glow!!"
print("Original string:\n" + inp_str)
marks = '''!()-[]{};?@#$%:'"\,./^&*_'''
for x in inp_str:
if x in marks:
opt_str = inp_str.replace(x, "")
print("String after deletion of punctuation marks:\n" + opt_str)
Результат:
Original string:
Hello! Folks, we are here to learn, grow and glow!!
String after deletion of punctuation marks:
Hello Folks, we are here to learn, grow and glow