Zoeken…


Overeenkomende letters in verschillende alfabetten

De onderstaande voorbeelden worden gegeven in Ruby, maar dezelfde matchers moeten beschikbaar zijn in elke moderne taal.

Laten we zeggen dat we de string "AℵNaïve" , geproduceerd door Messy Artificial Intelligence. Het bestaat uit letters, maar generieke \w matcher zal niet veel overeen:

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

De juiste manier om Unicode-letters aan combinatietekens te koppelen, is door \X te gebruiken om een grapheme-cluster op te geven. Er is echter een voorbehoud voor Ruby. Onigmo, de regex-engine voor Ruby, gebruikt nog steeds de oude definitie van een grapheme-cluster . Het is nog niet bijgewerkt naar Extended Grapheme Cluster zoals gedefinieerd in Unicode Standard Annex 29 .

Dus voor Ruby zouden we een oplossing kunnen hebben: \p{L} zal het bijna prima doen, behalve dat het faalt op een gecombineerd diakritisch accent op i :

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

Door de "Markeringssymbolen" aan de uitdrukking toe te voegen, kunnen we eindelijk alles matchen:

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow