Zoeken…


Syntaxis

  • normalize_string (s :: String, ...)

parameters

Parameter Details
casefold=true Vouw de string naar een canoniek geval gebaseerd op de Unicode- standaard.
stripmark=true Verwijder diakritische tekens (bijv. Accenten) van tekens in de invoertekenreeks.

Hoofdletterongevoelige tekenreeksvergelijking

Strings kunnen worden vergeleken met de operator == in Julia, maar dit is gevoelig voor verschillen in het geval. "Hello" en "hello" worden bijvoorbeeld als verschillende tekenreeksen beschouwd.

julia> "Hello" == "Hello"
true

julia> "Hello" == "hello"
false

Als u snaren op een niet-hoofdlettergevoelige manier wilt vergelijken, normaliseert u de snaren door ze eerst met een hoes te vouwen. Bijvoorbeeld,

equals_ignore_case(s, t) =
    normalize_string(s, casefold=true) == normalize_string(t, casefold=true)

Deze aanpak verwerkt ook niet-ASCII Unicode correct:

julia> equals_ignore_case("Hello", "hello")
true

julia> equals_ignore_case("Weierstraß", "WEIERSTRASS")
true

Merk op dat in het Duits de hoofdvorm van het ß-teken SS is.

Diacritisch-ongevoelige stringvergelijking

Soms wil men strings als "resume" en "résumé" om gelijk te vergelijken. Dat wil zeggen, grafemen die een basische glyph delen, maar mogelijk verschillen vanwege toevoegingen aan die basische glyphs. Een dergelijke vergelijking kan worden bereikt door diakritische tekens te verwijderen.

equals_ignore_mark(s, t) =
    normalize_string(s, stripmark=true) == normalize_string(t, stripmark=true)

Hierdoor kan het bovenstaande voorbeeld correct werken. Bovendien werkt het goed, zelfs met niet-ASCII Unicode-tekens.

julia> equals_ignore_mark("resume", "résumé")
true

julia> equals_ignore_mark("αβγ", "ὰβ̂γ̆")
true


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