Szukaj…


Dopasowywanie liter w różnych alfabetach

Przykłady poniżej podano w języku Ruby, ale te same elementy dopasowujące powinny być dostępne w każdym nowoczesnym języku.

Powiedzmy, że mamy ciąg "AℵNaïve" , wyprodukowany przez Messy Artificial Intelligence. Składa się z listów, ale generic \w dopasowującego nie będzie pasował wiele:

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

Prawidłowym sposobem dopasowania litery Unicode do łączenia znaków jest użycie \X do określenia klastra grafemu. Jest jednak zastrzeżenie dla Ruby. Onigmo, silnik wyrażeń regularnych dla Ruby, nadal używa starej definicji klastra grafemów . Nie jest jeszcze zaktualizowany do klastra Extended Grapheme zgodnie z definicją w standardzie Unicode, załącznik 29 .

Tak więc, dla Ruby możemy mieć rozwiązania: \p{L} zrobi prawie w porządku, z wyjątkiem nie jest on na połączeniu diakrytyczny akcent na i :

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

Dodając do wyrażenia „Oznacz symbole”, możemy w końcu dopasować wszystko:

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow