2016-06-23 11 views
4

Ich habe diese Saite: s = '☀️✈️✈️вьетнам'Ersetzen Emojis in Zeichenfolge Ergebnisse in ungeraden Zeichen

Ich möchte von ihm Emojis entfernen.

So tue mir:

import re 
emoji_re = re.compile(u'[' 
    u'\U0001F300-\U0001F64F' 
    u'\U0001F680-\U0001F6FF' 
    u'\u2600-\u26FF\u2700-\u27BF]+', 
    re.UNICODE) 
new = emoji_re.sub(r'', s) 

Was mir ein seltsames Ergebnis gibt, die ich als Screenshot bin zeigen, weil ich nicht in der Lage war es hier zu kopieren und einfügen.

enter image description here

Seltsamer können Sie sehen, dass „Druck“ Zeigen Sie mir das richtige Ergebnis. Warum passiert dies?

+0

F oder ich [etwas anderes] (https://i.imgur.com/fXWLY7P.png) passiert gerade. –

Antwort

1

Ich gab ihm einen Schuss auf ideone mit diesem Code:

import re 

s = '☀️✈️✈' 
emoji_re = re.compile(u'[' 
    u'\U0001F300-\U0001F64F' 
    u'\U0001F680-\U0001F6FF' 
    u'\u2600-\u26FF\u2700-\u27BF]+', 
    re.UNICODE) 
new = emoji_re.sub(r'', s) 
print(new) 

Und der Ausgang war, na ja, irgendwie leer. Nur die Art, weil ich dann hinzugefügt:

print(len(new)) 

Welchen Ausgang:

Ich war froh zu sehen, dass wir mit nicht druckbare Zeichen zu tun hat, und das ist, warum man‘ t fügen Sie es hier ein. Codieren der Zeichenfolge in UTF-8:

print(new.encode("utf-8")) 

Ausgänge

b '\ XeF \ XB8 \ X8F \ XeF \ XB8 \ X8F'


bei unicodelookup sucht es scheint, dass der Regex dieses Zeichen verfehlt:

Verwandte Themen