Regular Expressions
Corrispondenti UTF-8: lettere, segni, punteggiatura, ecc.
Ricerca…
Lettere corrispondenti in diversi alfabeti
Gli esempi di seguito sono riportati in Ruby, ma gli stessi abbinamenti dovrebbero essere disponibili in qualsiasi lingua moderna.
Diciamo che abbiamo la stringa "AℵNaïve"
, prodotta da Messy Artificial Intelligence. Si compone di lettere, ma generico \w
matcher non corrisponderà più:
▶ "AℵNaïve"[/\w+/]
#⇒ "A"
Il modo corretto per associare la lettera Unicode ai segni combinati è usare \X
per specificare un grafo grafo. C'è un avvertimento per Ruby, però. Onigmo, il motore regex di Ruby, utilizza ancora la vecchia definizione di grafo grapheme . Non è ancora stato aggiornato ad Extended Grapheme Cluster come definito nell'Allegato 29 Unicode Standard .
Quindi, per Ruby potremmo avere una soluzione: \p{L}
andrà quasi bene, salvo che fallisce sull'accento diacritico combinato su i
:
▶ "AℵNaïve"[/\p{L}+/]
#⇒ "AℵNai"
Aggiungendo i "Segna simboli" all'espressione, possiamo finalmente abbinare tutto:
▶ "AℵNaïve"[/[\p{L}\p{M}]+/]
#⇒ "AℵNaïve"