Maison  >  Article  >  développement back-end  >  Comment supprimer efficacement les emojis des chaînes en Python ?

Comment supprimer efficacement les emojis des chaînes en Python ?

DDD
DDDoriginal
2024-10-27 07:19:03993parcourir

How to Effectively Remove Emojis from Strings in Python?

Suppression des emojis d'une chaîne en Python

Cet article aborde le problème de la suppression des emojis d'une chaîne donnée en Python.

Dans le code Python fourni, le modèle d'expression régulière "/[x{1F601}-x{1F64F}]/u" ne gère pas correctement les emojis Unicode. Par conséquent, vous recevez une erreur « caractère invalide » lorsque vous recherchez des chaînes commençant par « xf ».

Une approche alternative consiste à utiliser un modèle d'expression régulière Unicode plus complet :

<code class="python">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)</code>

Ce modèle correspond à une gamme plus large d'emojis en spécifiant des plages de caractères Unicode.

Un autre aspect important est d'utiliser u'' pour créer une chaîne Unicode sur Python 2. De plus, les données d'entrée doivent être converties en Unicode à l'aide de texte. = data.decode('utf-8').

<code class="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</code>

Ce code lit la chaîne d'entrée 'text', qui contient un emoji. Il applique ensuite le « emoji_pattern » pour identifier et supprimer tous les emojis. Le résultat est une chaîne sans aucun emoji.

Veuillez noter que le modèle d'expression régulière fourni peut ne pas capturer tous les emojis existants, car la norme Unicode continue d'évoluer. Pour une liste complète des caractères emoji Unicode, reportez-vous à « Emoji et Dingbats ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn