Как удалить все символы кроме букв python
Перейти к содержимому

Как удалить все символы кроме букв python

  • автор:

Python — убрать все символы из слов, кроме букв — оптимизация

Требуется теперь очистить все символы в словах кроме букв и кроме дефисов внутри слов. Применил такую логику — ищем первую букву в начале слова и последнюю в конце, это и является началом и концом очищенного слова. Мне кажется немного топорное решение, может есть более интересные или упрощенные варианты? Через регулярное выражение, как понимаю, не получится, так как тогда внутри слова уберутся дефисы. Написал следующий код.

Отслеживать

задан 18 дек 2020 в 6:48

193 1 1 серебряный знак 9 9 бронзовых знаков

Мне кажется, предложенный алгоритм не справится со строкой «П_Р_И_В_Е_Т»

18 дек 2020 в 6:58

В данном случае моя цель проверить грамотность текста, т.е. наличие слова в словаре. Слово «П_Р_И_В_Е_Т» заведомо написано с ошибкой, поэтому мне это допущение как раз подходит.

Удалить все символы кроме букв

Author24 — интернет-сервис помощи студентам

Дана строка s из комбинации различных символов. Напишите функцию letters(s), которая удаляет из строки все символы, кроме букв.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Удалить все символы из файла, кроме русских букв
Доброй ночи. Нужно удалить из файла все символы, кроме русских букв, делаю так alphabet =.

Удалить из строки всех символы кроме букв
string = input() a = » if string.isalpha == False: if string.isalpha == True: a +=.

Найти в массиве все серии одинаковых элементов, идущих подряд, и удалить с них все элементы, кроме одного
Помогите сделать

Если в строке букв больше чем цифр, то из первой половины удалить все буквы, а из второй половины удалить все цифры
Здравствуйте! Дана задача: Дан текстовый файл. Преобразовать строки файла по правилу: если в.

3553 / 2156 / 568
Регистрация: 02.09.2015
Сообщений: 5,441

ЦитатаСообщение от Gramatey Посмотреть сообщение

которая удаляет из строки все символы, кроме букв.
Из строки нельзя удалить символы. Расходимся!
260 / 165 / 54
Регистрация: 03.05.2019
Сообщений: 339

letters = lambda s: ''.join(filter(lambda char: char.isalpha(), s))

Am I evil? Yes, I am!

Эксперт PythonЭксперт Java

17128 / 10064 / 2774
Регистрация: 21.10.2017
Сообщений: 22,032

return re.sub(r'(?i)[^a-z]*', '', s)

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Список. Удалить все элементы кроме первого
Доброе утро. Вопрос в заголовке. Удаляю через цикл. Есть какие то еще способы? Использую через.

Удалить все символы кроме английского алфавита с использованием библиотечной функции питона
Необходимо удалить из текста все символы НЕ английского алфавита из текста с использованием.

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

Удалить из текста все символы, кроме букв и пробелов
нужно удалить из текста все символы кроме букв и пробелов uses crt; var text:string; i:char;.

Удалить все символы из строки кроме английский букв
Ребят,подскажите имеется String s с переносами, пробелами, цифрами и тд. Как из неё вытащить только.

Как удалить все символы в строке кроме букв?
С этой строки надо убрать всё кроме abc. string s = "a1b2c*";

Удалить все символы, кроме латинских букв и цифр, а все большие лат. буквы сделать маленькими
всем привет, помогите исправить код программы. суть проги в том чтобы вводились множество символов.

Или воспользуйтесь поиском по форуму:

Как мне удалить все символы кроме цифр и точек в STRING?

Это мои STR, как мне удалить все [] : s ssh h, и прочий мусор кроме точек и цифр?

  • Вопрос задан более трёх лет назад
  • 5416 просмотров

Комментировать

Решения вопроса 2

Заменить по регулярному выражению нечисла и неточки на ничего.
re.sub(r'[^0-9.]+’, r», string)

Ответ написан более трёх лет назад

Комментировать

Нравится 3 Комментировать

x_dmitry_x @x_dmitry_x

Это мои STR

import re old_list = ['85.1.1.1: [ssh] S', '85.44.135.123: [s', '85.444.135.123: ['] p = re.compile(r"\d\.\d\.\d\.\d") new_list = [] for _ in old_list: matched = p.match(_) if matched: new_list.append(matched.group()) print(new_list)

Ответ написан более трёх лет назад

Комментировать

Нравится 1 Комментировать

Ответы на вопрос 0

Ваш ответ на вопрос

Войдите, чтобы написать ответ

python

  • Python
  • +3 ещё

Не удается вступить в канал телеграм, почему?

  • 1 подписчик
  • 4 часа назад
  • 46 просмотров

Как удалить специальные символы из строки в Python

Из-за использования некоторых специальных символов в коде часто возникают ошибки. Эти специальные символы могут встречаться в строках, а также использоваться с операторами. В этой статье мы расскажем, как удалить специальные символы из строки в Python.

Итак, начнем с открытия оболочки и приступим!

Как удалить специальные символы из строки при помощи join() и isalnum()

Для создания кода вам понадобится файл Python. Имя файла должно иметь расширение .py. После создания файла откройте его в каком-нибудь редакторе. Вы можете использовать любой встроенный редактор, например Vim, Nano или даже текстовый редактор. И, конечно, можно использовать вашу любимую IDE, например, Pycharm или VS Code. Мы воспользуемся консольным редактором nano:

$ touch remove.py $ nano remove.py

Файл успешно открыт в редакторе. В самом верху добавляем строку #!/usr/bin/python3 . Это путь к оболочке, которая должна использоваться для выполнения этого скрипта.

Дальше давайте инициализируем переменную v1 строкового типа, содержащую некоторые специальные и обычные символы. При помощи функции print() мы выводим значение этой переменной в консоль.

После этого мы используем метод isalnum() , чтобы получить только цифро-буквенные символы из этой строки и игнорировать все специальные символы. Все обычные символы будут объединены и сохранены в переменной v2 с помощью метода join() . После чего мы выведем новое получившееся значение с помощью функции print() :

#!/usr/bin/python3 v1 = “HELLO! This, is@an’Example String:” print (“Original string: ”, v1) v2 = ‘’.join(char for char in v1 if char.isalnum()) print (“Updated string: ”, v2)

После запуска нашего скрипта remove.py мы получили исходную строку со специальными символами и обновленную строку без специальных символов, как это можно увидеть ниже:

$ python3 remove.py

Как мы видим, во второй строке все лишние специальные символы удалены. Мы достигли желаемого результата. Теперь давайте посмотрим, как сделать это другим способом.

Удаление специальных символов при помощи join() и filter()

Давайте воспользуемся методом соединения join() . Откройте тот же файл и инициализируйте строку с обычными и специальными символами. Первоначальная строка будет выводиться на экран первой.

Далее мы используем метод join() с функцией filter() для строковой переменной v1 , чтобы отфильтровать символы. В данном случае для сбора только обычных символов из переменной v1 используется метод isalnum() . Затем мы выводим на экран обновленную строку:

#!/usr/bin/python3 v1 = “HELLO! This , is@an’Example String:” print (“Original string: ”, v1) v2 = ‘’.join(filter(str.isalnum, v1)) print (“Updated string: ”, v2)

Результат получается такой же, как в предыдущем примере, хотя здесь мы обошлись без цикла и условий:

$ python3 remove.py

Давайте еще раз обновим код. Мы взяли длинную строку со всеми специальными символами, какие только есть на нашей клавиатуре. Снова воспользуемся теми же функциями join() , filter() и isalnum() . Функцию print() используем для вывода исходной и обновленной строки.

Наш обновленный код будет выглядеть следующим образом:

#!/usr/bin/python3 v1 = “a!b#c$d%e^f&g*h (i)j_k~l`m/n?o.p>q’ r]s[tv=w+x-y\z” print (“Original string: ”, v1) v2 = ‘’.join(filter(str.isalnum, v1)) print (“Updated string: ”, v2)
$ python3 remove.py

Итак, в выводе мы сперва получаем исходную длинную строку со специальными символами, а затем обновленную строку, не имеющую специальных символов. Нужный результат достигнут.

Удаление специальных символов из строки с применением метода sub из пакета re

Давайте воспользуемся функцией sub из пакета re , чтобы удалить специальные символы.

Метод sub() используется для гибкой замены одних символов другими. Синтаксис:

import re result = re.sub(pattern, repl, string, count=0, flags=0) # pattern - строка шаблона регулярного выражения, # repl - строка замены, # string - строка для поиска, # count=0 - число, максимальное число вхождений pattern, # flags=0 - один или несколько флагов.
#!/usr/bin/python3 import re v1 = “HELLO! This , is@an’Example%String:”; print (“Original string: ”, v1); v2 = re.sub(r”[^a-Za-Z0-9]” , “”, v1) print (“Updated string: ”, v2);

Сперва импортируем в код сам модуль re . Далее инициализируем строку и выводим ее на экран при помощи print() .

Затем создадим переменную v2 , в которую сохраним обновленную строку.

Для обновления строки, т.е. удаления специальных символов из исходной, воспользуемся методом sub() .

Внутри метода мы сперва ставим флаг r , благодаря которому не придется экранировать обратную косую черту. (Больше на тему сырых строк и экранирования можно почитать в туториале «Строковые и байтовые литералы», — прим. ред. Pythonist.ru).

Затем в кавычках указываем шаблон. Заданный шаблон [^a-Za-Z0-9] соответствует всем символам, НЕ указанным в наборе (символ ^ в начале набора служит для инвертирования).

После этого указываем, на что нужно заменить указанные символы — на пустую строку. В самом конце указываем строку, в которой нужно искать, — пишем имя переменной.

Таким образом все специальные символы из строки v1 будут заменены пустыми строками, т.е. фактически удалены. Чтобы увидеть результат, пишем еще один print() .

Запустим наш код и получим исходную строку и обновленную:

$ python3 remove.py

Как видите, есть несколько способов удалить специальные символы из строки. И регулярные выражения – один из них. Подробнее про модуль re и регулярные выражения можно почитать в статье «Регулярные выражения в Python».

Заключение

Итак, мы разобрались, как удалить специальные символы из строки в Python. Мы проделали это разными способами: при помощи регулярных выражений, методов join() , filter() и isalnum() . Вы можете использовать тот способ, который вам больше по душе.

Надеемся, данное руководство было вам полезно. Желаем успехов в написании кода!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *