ホームページ  >  記事  >  バックエンド開発  >  Go で文字列からアクセントを削除するにはどうすればよいですか?

Go で文字列からアクセントを削除するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-03 16:45:30676ブラウズ

How to Remove Accents from Strings in Go?

Go: 文字列からアクセントを削除する

Go では、正規化と削除関数を使用して文字列からアクセントを削除できます。次のアプローチでは、Go 1.5 以降の runes パッケージを利用します。

<code class="go">import (
    "fmt"
    "runes"
    "code.google.com/p/go.text/transform"
    "code.google.com/p/go.text/unicode/norm"
)

func RemoveAccents(s string) string {
    t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
    result, _, _ := transform.String(t, s)
    return result
}

func main() {
    input := "résumé"
    fmt.Println(RemoveAccents(input)) // Output: resume
}</code>

このアプローチでは、次のことを行います。

  1. norm.NFD 正規化形式を使用して、文字列をその正規化形式に変換します。完全に分解された形式。
  2. を使用して非スペース記号 (アクセント) を削除します。 runes.Remove(runes.In(unicode.Mn)).
  3. norm.NFC を使用して文字列を構成された形式に戻します。
  4. 変換された文字列をアクセントなしで返します。

このアプローチには、runes パッケージが導入された Go 1.5 以降が必要であることに注意してください。

以上がGo で文字列からアクセントを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。