Sök…


Matchande bokstäver i olika alfabet

Exempel nedan ges i Ruby, men samma matchare bör finnas tillgängliga på alla moderna språk.

Låt oss säga att vi har strängen "AℵNaïve" , producerad av Messy Artificial Intelligence. Den består av bokstäver, men generiska \w matcher kommer inte överens mycket:

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

Det rätta sättet att matcha Unicode-bokstaven med att kombinera märken är att använda \X att ange ett grafeme-kluster. Det finns dock ett förbehåll för Ruby. Onigmo, regexmotorn för Ruby, använder fortfarande den gamla definitionen av ett grafeme-kluster . Det har ännu inte uppdaterats till Utvidgat Grapheme Cluster enligt definitionen i Unicode Standard Annex 29 .

Så för Ruby kan vi ha en lösning: \p{L} kommer att göra nästan bra, förutom att det misslyckas med kombinerad diakritisk accent på i :

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

Genom att lägga till ”Markeringssymbolerna” till uttrycket kan vi äntligen matcha allt:

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow