Regular Expressions
Mecze UTF-8: litery, znaki, interpunkcja itp.
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"