Julia Language
String-Normalisierung
Suche…
Syntax
- normalize_string (s :: String, ...)
Parameter
Parameter | Einzelheiten |
---|---|
casefold=true | Falten Sie die Zeichenfolge zu einem kanonischen Fall, der auf dem Unicode- Standard basiert. |
stripmark=true | Entfernen Sie diakritische Zeichen (dh Akzente) von Zeichen in der Eingabezeichenfolge. |
String-Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung
Zeichenfolgen können mit dem Operator ==
in Julia verglichen werden. Dies ist jedoch abhängig von den Unterschieden. Zum Beispiel werden "Hello"
und "hello"
als unterschiedliche Zeichenfolgen betrachtet.
julia> "Hello" == "Hello"
true
julia> "Hello" == "hello"
false
Um Zeichenfolgen unabhängig von der Groß- und Kleinschreibung zu vergleichen, normalisieren Sie die Zeichenfolgen, indem Sie sie zuerst mit der Groß- / Kleinschreibung falten. Zum Beispiel,
equals_ignore_case(s, t) =
normalize_string(s, casefold=true) == normalize_string(t, casefold=true)
Dieser Ansatz behandelt auch Nicht-ASCII-Unicode korrekt:
julia> equals_ignore_case("Hello", "hello")
true
julia> equals_ignore_case("Weierstraß", "WEIERSTRASS")
true
Beachten Sie, dass in Deutsch die Großbuchstaben des ß-Zeichens SS ist.
Vergleich der diakritischen Zeichenfolgen
Manchmal möchte man Zeichenfolgen wie "resume"
und "résumé"
gleich vergleichen. Das heißt, Grapheme , die eine grundlegende Glyphe verwenden, sich aber möglicherweise aufgrund von Hinzufügungen zu diesen grundlegenden Glyphen unterscheiden. Ein solcher Vergleich kann durch Abziehen diakritischer Markierungen erreicht werden.
equals_ignore_mark(s, t) =
normalize_string(s, stripmark=true) == normalize_string(t, stripmark=true)
Dadurch kann das obige Beispiel korrekt funktionieren. Darüber hinaus funktioniert es auch mit Nicht-ASCII-Unicode-Zeichen.
julia> equals_ignore_mark("resume", "résumé")
true
julia> equals_ignore_mark("αβγ", "ὰβ̂γ̆")
true