Saltar al contenido

eliminar emojis de una cadena en Python

Solución:

En Python 2, debes usar u'' literal para crear una cadena Unicode. Además, debes pasar re.UNICODE marcar y convertir sus datos de entrada a Unicode (por ejemplo, text = data.decode('utf-8')):

#!/usr/bin/env python
import re

text = u'This dog U0001f602'
print(text) # with emoji

emoji_pattern = re.compile("["
        u"U0001F600-U0001F64F"  # emoticons
        u"U0001F300-U0001F5FF"  # symbols & pictographs
        u"U0001F680-U0001F6FF"  # transport & map symbols
        u"U0001F1E0-U0001F1FF"  # flags (iOS)
                           "]+", flags=re.UNICODE)
print(emoji_pattern.sub(r'', text)) # no emoji

Producción

This dog 
This dog 

Nota: emoji_pattern coincide solo con algunos emoji (no todos). Vea qué personajes son emoji.

Estoy actualizando mi respuesta a esto por @jfs porque mi respuesta anterior no tuvo en cuenta otros estándares Unicode como latín, griego, etc. StackOverFlow no me permite eliminar mi respuesta anterior, por lo tanto, la estoy actualizando para que coincida con la respuesta más aceptable. a la pregunta.

#!/usr/bin/env python
import re

text = u'This is a smiley face U0001f602'
print(text) # with emoji

def deEmojify(text):
    regrex_pattern = re.compile(pattern = "["
        u"U0001F600-U0001F64F"  # emoticons
        u"U0001F300-U0001F5FF"  # symbols & pictographs
        u"U0001F680-U0001F6FF"  # transport & map symbols
        u"U0001F1E0-U0001F1FF"  # flags (iOS)
                           "]+", flags = re.UNICODE)
    return regrex_pattern.sub(r'',text)

print(deEmojify(text))

Esta fue mi respuesta anterior, no use esto.

def deEmojify(inputString):
    return inputString.encode('ascii', 'ignore').decode('ascii')

Si está usando el ejemplo de la respuesta aceptada y aún obtiene errores de “rango de caracteres incorrectos”, entonces probablemente esté usando una compilación limitada (consulte esta respuesta para obtener más detalles). Una versión reformateada de la expresión regular que parece funcionar es:

emoji_pattern = re.compile(
    u"(ud83d[ude00-ude4f])|"  # emoticons
    u"(ud83c[udf00-uffff])|"  # symbols & pictographs (1 of 2)
    u"(ud83d[u0000-uddff])|"  # symbols & pictographs (2 of 2)
    u"(ud83d[ude80-udeff])|"  # transport & map symbols
    u"(ud83c[udde0-uddff])"  # flags (iOS)
    "+", flags=re.UNICODE)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *