Julia Language
文字列正規化
サーチ…
構文
- normalize_string(s :: String、...)
パラメーター
パラメータ | 詳細 |
---|---|
casefold=true | Unicode規格に準拠したカノニカルケースに文字列を折りたたみます。 |
stripmark=true | 入力文字列の文字から分音記号 (アクセント記号 )を取り除きます。 |
大文字と小文字を区別しない文字列の比較
Juliaでは文字 ==
演算子と比較できますが、これは大文字と小文字の区別に敏感です。たとえば、 "Hello"
と"hello"
は異なる文字列と見なされます。
julia> "Hello" == "Hello"
true
julia> "Hello" == "hello"
false
大文字小文字を区別しない方法で文字列を比較するには、まず文字列を大文字に変換して正規化します。例えば、
equals_ignore_case(s, t) =
normalize_string(s, casefold=true) == normalize_string(t, casefold=true)
このアプローチでは、非ASCII Unicodeも正しく処理されます。
julia> equals_ignore_case("Hello", "hello")
true
julia> equals_ignore_case("Weierstraß", "WEIERSTRASS")
true
ドイツ語では、大文字のβ文字はSSであることに注意してください。
発音区別符号を区別しない文字列の比較
時には、 "resume"
と"résumé"
ような文字列が等しいと比較することが必要な場合もあります。つまり、 書記素の基本的なグリフを共有しますが、おそらく、これらの基本的なグリフへの追加の異なります。そのような比較は、分音記号を取り除くことによって達成することができる。
equals_ignore_mark(s, t) =
normalize_string(s, stripmark=true) == normalize_string(t, stripmark=true)
これにより、上記の例が正しく動作するようになります。さらに、非ASCII Unicode文字でもうまく動作します。
julia> equals_ignore_mark("resume", "résumé")
true
julia> equals_ignore_mark("αβγ", "ὰβ̂γ̆")
true
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow