Удалить не буквенно-цифровые символы из строки Python

  1. Используйте метод isalnum() для удаления всех не буквенно-цифровых символов в строке Python
  2. Используйте функцию filter() для удаления всех не буквенно-цифровых символов в строке Python
  3. Используйте регулярные выражения для удаления всех не буквенно-цифровых символов в строке Python

Буквенно-цифровые символы содержат смесь 26 символов из набора букв и цифр от 0 до 9. Неалфавитно-цифровые символы включают символы, не являющиеся буквами или цифрами, например + и @.

В этом руководстве мы обсудим, как удалить не буквенно-цифровые символы из строки в Python.

Используйте метод isalnum() для удаления всех не буквенно-цифровых символов в строке Python

Мы можем использовать метод isalnum(), чтобы проверить, является ли данный символ или строка буквенно-цифровыми или нет. Мы можем сравнивать каждый символ в строке по отдельности, и если он буквенно-цифровой, то объединяем его с помощью функции join().

Например,

string_value = "alphanumeric@123__"
s = ''.join(ch for ch in string_value if ch.isalnum())
print(s)

Выход:

alphanumeric123

Используйте функцию filter() для удаления всех не буквенно-цифровых символов в строке Python

Функция filter() используется для построения итератора из компонентов итерируемого объекта и фильтрует элементы объекта с помощью функции.

Для нашей задачи строка является нашим объектом, и мы будем использовать функцию isalnum(), которая проверяет, содержит ли данная строка буквенно-цифровые символы или нет, проверяя каждый символ. Функция join() объединяет все символы для возврата строки.

Например,

string_value = "alphanumeric@123__"
s = ''.join(filter(str.isalnum, string_value))
print(s)

Выход:

alphanumeric123

Этот метод не работает с Python 3.

Используйте регулярные выражения для удаления всех не буквенно-цифровых символов в строке Python

Регулярное выражение - это исключительная группа символов, которая помогает сопоставлять разные строки или наборы строк с использованием определенного синтаксиса в шаблоне. Чтобы использовать регулярные выражения, мы импортируем модуль re.

Мы можем использовать функцию sub() из этого модуля, чтобы заменить всю строку, которая соответствует не буквенно-цифровому символу, пустым символом.

Например,

import re
string_value = "alphanumeric@123__"
s=re.sub(r'[\W_]+', '', string_value)
print(s)

Выход:

alphanumeric123

В качестве альтернативы мы также можем использовать следующий шаблон.

import re
string_value = "alphanumeric@123__"
s = re.sub(r'[^a-zA-Z0-9]', '', string_value)
print(s)

Выход:

alphanumeric123

Сопутствующая статья - Python String

  • Как проверить, что строка пуста в Python
  • Как удалить белый пробел в строке на Python
  • Как конвертировать строку в дату на Python
  • Как преобразовать строку в нижний кейс на Python 2 и 3