Suche…


Übereinstimmende Buchstaben in verschiedenen Alphabeten

Die nachstehenden Beispiele sind in Ruby angegeben, jedoch sollten in jeder modernen Sprache dieselben Matcher verfügbar sein.

Nehmen wir an, wir haben die Zeichenfolge "AℵNaïve" , produziert von Messy Artificial Intelligence. Es besteht aus Buchstaben, aber der generische \w Matcher passt nicht besonders gut zusammen:

▶ "AℵNaïve"[/\w+/]
#⇒ "A"

Der richtige Weg, Unicode-Buchstaben mit Kombinationsmarken abzugleichen, ist die Verwendung von \X zur Angabe eines Graphem-Clusters. Es gibt jedoch einen Vorbehalt für Ruby. Onigmo, die Regex-Engine für Ruby, verwendet immer noch die alte Definition eines Graphem-Clusters . Es ist noch nicht auf Extended Grapheme Cluster gemäß der Definition in Unicode Standard Anhang 29 aktualisiert.

Für Ruby könnte es also zu einer Problemumgehung kommen: \p{L} wird fast alles gut machen, es sei denn, der kombinierte diakritische Akzent bei i schlägt fehl

▶ "AℵNaïve"[/\p{L}+/]
#⇒ "AℵNai"

Durch das Hinzufügen der Markierungssymbole zum Ausdruck können wir schließlich alles abgleichen:

▶ "AℵNaïve"[/[\p{L}\p{M}]+/]
#⇒ "AℵNaïve"


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow