@Refic

Как убрать пунктуацию в питоне, но оставить некоторые символы?

Всем привет.

Как в питоне убрать пунктуацию, но оставить некоторые символы в строке?
Строка, например, такая - "blah. ! blah (beeep?) heap :) :) :)

символы я убираю так print re.sub(r'[^\w\s]', '', text),
но как мне оставить смайлики в конце?
  • Вопрос задан
  • 959 просмотров
Решения вопроса 2
dimonchik2013
@dimonchik2013
non progredi est regredi
ты хочешь убрать неалфафитные симолы и оставить неалфавитные...
это не делается одним выражением

или решай задачу прямым проходом в три этапа
1) очистка неуникода (этап тебе может и не нужен)
2) очистка от ненужных символов
3) очистка ненужных от несмайликов

или в три шага
1) замена смайлов на последовательности
2) очистка
3) замена последовательностей на смайлы

в три шага быстрее
Ответ написан
adugin
@adugin Куратор тега Python
>>> text
'blah. ! blah (beeep?) heap :) :) :)'
>>> re.sub(':(?!\))|(?<!:)\)|[^\w\s:)]', '', text)
'blah  blah beeep heap :) :) :)'

Или так:
>>> from functools import partial
>>> smile = ':)'
>>> regex = partial(re.sub, '[^\w\s]', '')
>>> smile.join(map(regex, text.split(smile)))
'blah  blah beeep heap :) :) :)'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
посмотрите тут такую комбинацию x(?!y) а также оператор типа |
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы