Julia Language
Normalisation de chaîne
Recherche…
Syntaxe
- normalize_string (s :: String, ...)
Paramètres
Paramètre | Détails |
---|---|
casefold=true | Pliez la chaîne dans un boîtier canonique basé sur la norme Unicode . |
stripmark=true | Supprimez les marques diacritiques (c.-à-d. Les accents) des caractères de la chaîne d'entrée. |
Comparaison de chaînes insensible à la casse
Les chaînes peuvent être comparées avec l' opérateur ==
dans Julia, mais ceci est sensible aux différences de casse. Par exemple, "Hello"
et "hello"
sont considérés comme des chaînes différentes.
julia> "Hello" == "Hello"
true
julia> "Hello" == "hello"
false
Pour comparer des chaînes de manière insensible à la casse, normalisez les chaînes en les pliant au préalable. Par exemple,
equals_ignore_case(s, t) =
normalize_string(s, casefold=true) == normalize_string(t, casefold=true)
Cette approche gère également les Unicode non-ASCII correctement:
julia> equals_ignore_case("Hello", "hello")
true
julia> equals_ignore_case("Weierstraß", "WEIERSTRASS")
true
Notez qu'en allemand, la forme majuscule du caractère ß est SS.
Comparaison diacritique-insensible aux cordes
Parfois, on veut des chaînes comme "resume"
et "résumé"
pour comparer. Autrement dit, les graphèmes qui partagent un glyphe de base, mais peuvent différer en raison des ajouts à ces glyphes de base. Une telle comparaison peut être effectuée en éliminant les marques diacritiques.
equals_ignore_mark(s, t) =
normalize_string(s, stripmark=true) == normalize_string(t, stripmark=true)
Cela permet à l'exemple ci-dessus de fonctionner correctement. En outre, il fonctionne bien même avec des caractères Unicode non-ASCII.
julia> equals_ignore_mark("resume", "résumé")
true
julia> equals_ignore_mark("αβγ", "ὰβ̂γ̆")
true