2017-06-27 1 views
1

Ich habe eine Notwendigkeit für eine Javascript-Regex, die Wörter in jeder Sprache übereinstimmen, aber für Emoji oder ein anderes Zeichen fehlschlagen. Lösung hier: passt alle Buchstaben plus Piktogramme und Emoji ([^\u0000-\u007F]+).Regex passende Buchstaben - einschließlich nicht-Latein, aber ohne Emoji

es ein bisschen ändern scheint zu tun, was ich brauche, aber ich bin mir nicht sicher, wie sicher es ist: ([a-zA-Z]|[^\u0000-\u007F\u200d-\u3299\ud83c-\udfff\ufe0e\ufe0f])+

Beispiel: America Österreich Россия Ελλάδα

nur Sollte Buchstaben übereinstimmen und Stoppen Sie vor dem Emoji. Sollte nicht Emojis mit Schreiben Darstellungen, zum Beispiel entspricht: 1️⃣#️⃣*️⃣

Relevant: http://www.unicode.org/Public/emoji/5.0/emoji-variation-sequences.txt

Bit von Kontext: Ich versuche, diesen Parser zu patchen: https://github.com/Khan/simple-markdown/blob/master/simple-markdown.js#L1304 auf Emojis zu brechen, weil zur Zeit paßt es als viel Text, wie es kann. Ohne dass das Anpassen/Ersetzen von Emoji über diesen Parser problematisch ist. Das Entfernen von aus dem markierten Regex führt zu dem, was ich brauche, aber der Parser beginnt, Wörter zu zerlegen. Einige Sprachen (kyrillisch) werden pro Buchstabe gebrochen, was nicht gut für die Leistung ist. Ich muss entweder diese Regex patchen, um Buchstaben zuzulassen, aber nicht Emojis, oder eine Regex setzen, die den gesamten Text davor fängt.

Edit: Hinzugefügt einige Beispiele

Edit: Hinzugefügt Sprache Einschränkung

+0

Yep einige Beispiele hinzugefügt – Max

Antwort

0

\pL entspricht einem Unicode-Buchstaben.

Vielleicht möchten Sie kombinieren, dass Unicode-Kategorie mit \p{Pc} (Stecker Interpunktion) auch Wortkombinationen wie it's oder doesn't unter Verwendung einer Zeichenklasse zu fangen: [\pL\p{Pc}]

+0

Vielen Dank, ich habe vergessen, in dem Text hinzuzufügen, dass ich es in Javascript brauche. Ihre Lösung wäre gut, aber nicht für JS :( – Max

+0

Ah, sorry, ich dachte irgendwie, ich hätte Java gelesen ... in diesem Fall, Steve Levithans XRegExp-Bibliothek (mit Unicode-Plugins) (http://xregexp.com) /Plugins/). –