Sök…


Syntax

  • normalisera sträng (s :: String, ...)

parametrar

Parameter detaljer
casefold=true Vik strängen till ett kanoniskt fall baserat på Unicode- standarden.
stripmark=true Rada diakritiska märken (dvs. accenter) från tecken i inmatningssträngen.

Fall-okänslig strängjämförelse

Strängar kan jämföras med == operatören i Julia, men detta är känsligt för skillnader i fall och fall. Till exempel betraktas "Hello" och "hello" som olika strängar.

julia> "Hello" == "Hello"
true

julia> "Hello" == "hello"
false

För att jämföra strängar på ett okänsligt sätt, normaliserar du strängarna genom att fälla dem i huvudsak. Till exempel,

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

Detta tillvägagångssätt hanterar även icke-ASCII Unicode korrekt:

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

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

Observera att på tyska är storleken på ß-karaktären SS.

Diakritisk-okänslig strängjämförelse

Ibland vill man att strängar som "resume" och "résumé" ska jämföra. Det vill säga grafema som delar en grundläggande glyph, men som eventuellt skiljer sig på grund av tillägg till de grundläggande glyferna. En sådan jämförelse kan uppnås genom att strippa diakritiska märken.

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

Detta gör att exemplet ovan fungerar korrekt. Dessutom fungerar det bra även med icke-ASCII Unicode-tecken.

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

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


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