Удалить специальные гвоздики из строки в джанго

Я хочу удалить все специальные символы из электронной почты, такие как «@», «.». и заменить их на "подчеркивание" для него есть несколько функций в python unidecode , но это не заполняет мое требование. может кто-нибудь предложить мне какой-то способ, чтобы я мог найти упомянутые выше символы в строке и заменить их «подчеркиванием».

Благодарю.

1
nl ja de

3 ответы

Почему бы не использовать .replace() ?

например.

a='[email protected]'
a.replace('@','_')
'testemail_email.com'

и для редактирования нескольких вы, вероятно, можете сделать что-то подобное

a='[email protected]'
replace=['@','.']
for i in replace:
  a=a.replace(i,'_')
3
добавлено
@Inforian посмотреть на редактирование
добавлено автор Jonathan, источник
но вместо этого принимает только два аргумента txt.replace ('@', '_'), если я хочу удалить более одного символа
добавлено автор Inforian, источник
да, это работает, спасибо
добавлено автор Inforian, источник

Отличный пример из Python Cookbook 2nd edition

import string
def translator(frm='', to='', delete='', keep=None):
    if len(to) == 1:
        to = to * len(frm)
    trans = string.maketrans(frm, to)
    if keep is not None:
        allchars = string.maketrans('', '')
        delete = allchars.translate(allchars, keep.translate(allchars, delete))
    def translate(s):
        return s.translate(trans, delete)
    return translate


remove_cruft = translator(frm="@-._", to="~")
print remove_cruft("[email protected]")

вывод:

me~and~you~gmail~com

Для того, чтобы вставить свой инструментарий, нужна большая строка.

All credit to the book

1
добавлено

Возьмите это как руководство:

import re
a = re.sub(u'[@]', '"', a)

<Сильный> СИНТАКСИС:

re.sub(pattern, repl, string, max=0)
1
добавлено
Привет, Кэти, замените быстрее, чем суб
добавлено автор Jonathan, источник
Посмотрите
добавлено автор Jonathan, источник
вы тоже можете это сделать, дай мне секунду, я обновлю код
добавлено автор Jonathan, источник
спасибо, и он работает, но наоборот ... он заменяет [email protected] на "" "" "@" "" "". "" "
добавлено автор Inforian, источник
@Jonathan да, это работает, но вместо замены принимает только два аргумента txt.replace ('@', '_') , если я хочу удалить более одного символа
добавлено автор Inforian, источник
@cathy спасибо за ответ
добавлено автор Inforian, источник
Добро пожаловать :), я рад помочь
добавлено автор catherine, источник
В зависимости от того, что хочет сделать @Inforian, вместо указания класса символов, содержащего «специальные» символы, может быть проще указать отрицательный класс символов «неспециальные символы». Например, если мы определяем «особый символ» как что-либо, что не является буквой или цифрой, то что-то вроде re.sub (r '[^ a-zA-Z0-9]', '_' , email) , следует преобразовать [email protected] в an_example_example_com .
добавлено автор Adam Brenecki, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

Django
Django
1 931 участник(ов)

Полезная информация и правила: https://github.com/django-ru/faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

django_jobs
django_jobs
916 участник(ов)

Поиск и предложения работы (Django) Правила: https://t.me/django_jobs/4 Вакансии с тегом #job улетают в канал @django_jobs_board Вопросы к @amureki Основной чат @pydjango

Django
Django
733 участник(ов)

Веб-фреймворк для перфекционистов с дедлайнами. Наша группа на vk: https://vk.com/django_framework В Discord: https://discord.me/django_framework по всем вопросам @MechanisM

rupython
rupython
509 участник(ов)

Группа создана с целью оперативного получения ответов на возникающие вопросы по разработке на яп python, смежные темы, а также человеческого общения. Приветствую!

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community

django flood
django flood
71 участник(ов)

Флудилка джангистов Пока без правил