2016-08-02 9 views
9

Haben Emojis einen klar definierten Unicode-Bereich?Gibt es einen bestimmten Bereich von Unicode-Codepunkten, die auf Emojis überprüft werden können?

Und gibt es eine definitive Möglichkeit zu überprüfen, ob ein Code-Punkt ein Emoji in Python 2.7 ist?

Ich kann anscheinend keine Informationen dazu finden. Ein paar Quellen auf den Bereich zeigte:

\U0001f600-\U0001f650 

Aber zum Beispiel hat den Codepunkt

\U0001f918 

, die außerhalb dieses Bereichs liegt.

Danke.

+0

Vielleicht lohnt sich zu untersuchen: https://github.com/mathiasbynens/emoji-regex Sie generieren den regulären Ausdruck dynamisch zu aktualisieren Bereichen von Emojis, – Keozon

+1

Ich wollte fragen, wie Sie sogar definieren, was ist oder Isn Es ist ein Emoji, aber anscheinend ist das eine Sache, die der Unicode-Standard definiert. – user2357112

+0

Ist Pythons Unicode-Unterstützung nicht integriert? Das heißt, die Tabellen müssen jedes Mal neu berechnet werden, wenn Unicode.org noch eine weitere SMILING KITTY hinzufügt? (Ich erinnere mich, dass dies in einer anderen Antwort zu einem ähnlichen Thema erwähnt wurde.) – usr2564301

Antwort

5

regex unterstützt durch Unicode-Eigenschaft, aber leider unterstützt es (noch?) emoji-specific properties. Wenn es der Fall ist, wird sie zu finden so einfach sein wie:

>>> regex.match(ur'\P{Emoji=yes}', u'') # NOTE: Doesn't (yet) work 

In der Zwischenzeit here's the emoji table from unicode.org.

+3

Beachten Sie, dass dies Zeichen wie '#' und '*' enthält, weil viel mehr Zeichen "Emoji = yes" haben, als Sie vielleicht erwarten . Die Filterung auf "Emoji_Presentation = yes" ist wählerischer, aber es könnte Zeichen ausschließen, die Sie als Emoji verstehen würden, wie RIGHT ANGER BUBBLE. – user2357112