Python: Удаление специальных символов из строки
В этом руководстве вы научитесь удалять специальные символы из строк с помощью Python. Зачастую при работе со строками вы столкнетесь со строками, содержащими специальные символы. Они могут вызывать проблемы при проведении текстового анализа, например, обработки естественного языка. Поэтому умение удалять специальные символы из строк является важным навыком.
Оглавление:
Удаление специальных символов с помощью Python isalnum
isalnum
В Python есть специальный строковый метод .isalnum()
, который возвращает True, если символ является буквенно-цифровым, и False в противном случае. Мы можем использовать его для перебора строки и добавления только буквенно-цифровых символов в новую строку.
Давайте рассмотрим, что мы здесь сделали:
Создаем две строки: одну с исходным текстом и пустую
Перебираем каждый символ в строке и проверяем, является ли он буквенно-цифровым с помощью метода
.isalnum()
Если символ буквенно-цифровой, добавляем его в новую строку. Если нет - ничего не делаем
Удаление специальных символов с помощью регулярных выражений Python
Библиотека регулярных выражений Python, re
, предоставляет множество полезных методов для работы со строками. Один из этих методов - .sub()
, который позволяет заменять одни строки на другие.
Преимущество библиотеки re
в том, что не нужно точно указывать, какой символ заменить. Благодаря этому можно задавать диапазоны символов для замены или сохранения.
Например, чтобы сохранить все буквенно-цифровые символы и пробелы, мы просто говорим методу .sub()
заменить все, кроме [^a-zA-Z0-9 ]
.
Давайте разберем, что мы сделали:
Загрузили строку в переменную
Использовали метод
re.sub()
для замены. Функция принимает три аргумента:Шаблон для замены (использовали
^
, чтобы заменить все, кроме указанных символов)Чем заменить символы
Строка, в которой производится замена
Удаление специальных символов с помощью функции Filter
Помимо цикла for
, мы можем использовать функцию filter()
для удаления специальных символов из строки.
Функция filter()
принимает два параметра:
Функцию для оценки
Итерируемый объект для фильтрации
Разберем, как это работает:
Используем функцию
filter()
для возврата объекта фильтра, включающего только буквенно-цифровые символыИспользуем метод
str.join()
для объединения символов без разделителей, преобразуя список в строку
Если вы хотите включить другие символы, например, пробелы, можно определить пользовательскую функцию:
Почему этот подход работает:
Определяем пользовательскую функцию, которая проверяет, является ли символ буквенно-цифровым или пробелом
Возвращаем True, если условие выполняется, иначе False
Благодаря этой оценке, мы фильтруем значения, не прошедшие проверку
Заключение
В этой статье вы научились удалять специальные символы из строк Python. Вы узнали, как это сделать с помощью метода .isalphanum()
, библиотеки регулярных выражений re и функции filter()
. Изучение этого навыка крайне важно, так как работа с текстовыми данными становится все более значимой.
Дополнительные ресурсы
Функции Python Ord и Chr: работа с Юникодом
Python: удаление пунктуации из строки (3 разных способа!)
Как удалить префикс или суффикс из строки в Python
Как удалить первый или последний символ из строки Python
Last updated