Удаление пунктуации из строки
Для удаления пунктуации из строки Python воспользуемся методом строки str.replace() . А именно, в цикле пройдемся по всем символам пунктуации, и если они есть, то просто заменим его на пустую строку.
Что бы не вспоминать и не собирать все символы пунктуации в список, воспользуемся модулем string , который любезно предоставляет атрибут с символами пунктуации string.punctuation .
# исходная строка >>> line = '- Мама мыла раму, а Маша помогала. (из прописи 1 класса)' >>> import string >>> string.punctuation # '!"#$%&\'()*+,-./:;?@[\\]^_`<|>~' # пунктуацию будем удалять в цикле for p in string.punctuation: if p in line: # банальная замена символа в строке line = line.replace(p, '') >>> line.strip() # 'Мама мыла раму а Маша помогала из прописи 1 класса'
Кстати таким же способом можно удалять например «стоп слова» из текста, который подготавливается к поиску.
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Преобразование строки в число
- Строку в список, кортеж или множество символов
- Одинарные, двойные и тройные кавычки в строке Python
- Вывод специальных символов в строке Python «как есть»
- Объединение и повторение строк
- Индексирование строк
- Использование срезов строк
- Cрез строки Python от заданного символа/знака до конца строки
- Создание макета для печати базовыми методами строк
- Способы форматирования текстовых строк
- Подсчет повторений слов в тексте, деление строки на список слов
- Удаление слова из строки Python по фрагменту или шаблону
- Удаление пунктуации из строки
- Деление строки по заглавным буквам
- Создание отчетов и писем по шаблонам
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
Регулярка для замены пробелов на запятую
Вот с помощью регулярных выражений. Заменяет блок всех пробельных символов (пробелы, табуляции) на запятую:
import re x = u"abc de\t \tf" print x # abc de f y = re.sub(r"\s+", u",", x) print y # abc,de,f
Отслеживать
ответ дан 3 апр 2013 в 17:01
342 1 1 серебряный знак 7 7 бронзовых знаков
можно еще воспользоваться командой replace
Отслеживать
ответ дан 3 апр 2013 в 17:07
actionless actionless
1,381 8 8 серебряных знаков 7 7 бронзовых знаков
replace это хорошо, но как быть со случайным количеством пробелов?
3 апр 2013 в 17:09
вы про это не уточнили, тогда да, регулярка проще будет
3 апр 2013 в 18:03
- python
- python-3.x
- регулярные-выражения
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Требуется все пробелы в ней заменить на пары пробелов
Дана строка символов. Требуется все пробелы в ней заменить на пары
пробелов.
Необходимо проходить по массиву лишь один-два раза и использовать только константную дополнительную память, за исключением памяти под дополнительный массив/строку.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Удалить в строке все лишние пробелы, то есть серии подряд идущих пробелов заменить на одиночные пробелы
Я уже решал эту задачу с помощью циклов и символьных массивов, и выкладывал на этот форум , но я не.
Заменить все пары одинаковых символов на пробелы (си)
Есть программа, она заменяет на пробел все символы, которые совпадают с первым, ее надо переделать.

В символьной матрице, которая не содержит пробелов, заменить все гласные буквы на пробелы
Помогите пожалуйста с программкой. В символьной матрице GL(M,N), M≤12, N≤16, которая.

Дана строка символов. Заменить в ней все пробелы на табуляции
Здравствуйте! Ребят, помогите решить следующие задачи : Тема: Обработка строк 1)Дана.
