ホームページ  >  記事  >  バックエンド開発  >  Go の strings.Map 関数を使用してテキスト入力を ASCII に正規化する方法

Go の strings.Map 関数を使用してテキスト入力を ASCII に正規化する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-24 07:24:29183ブラウズ

How to Normalize Text Input to ASCII using Go's strings.Map Function?

テキスト入力を ASCII に正規化する: 代替アプローチ

異なる文字セットを扱う場合、テキスト入力を ASCII に正規化することは、一貫したデータ処理と分析。これに関連して、ユーザーの入力には中引用符などの非 ASCII 文字が含まれている可能性があり、効果的な解析や書き込みの落とし穴のフラグ付けを妨げる可能性があります。

現在のアプローチでは、特定の文字シーケンスを対応する ASCII 文字列に手動で置き換える必要があります。ただし、Go 標準ライブラリには、より汎用性の高いソリューションが存在します。strings.Map 関数です。

strings.Map 関数

strings.Map 関数は、ルーン (Unicode コード ポイント) を他のルーンにマッピングするカスタマイズ可能なメカニズム。これにより、効率的な文字の正規化と変換が可能になります。この場合、非 ASCII 文字を同等の ASCII 文字に変換するマッピング関数を定義できます。

実装例

次の例は、文字列の使用方法を示しています。テキスト入力を正規化するための .Map 関数:

<code class="go">func main() {
    data := "Hello “Frank” or ‹François› as you like to be ‘called’"
    fmt.Printf("Original: %s\n", data)
    cleanedData := strings.Map(normalize, data)
    fmt.Printf("Cleaned: %s\n", cleanedData)
}

func normalize(in rune) rune {
    switch in {
    case '“', '‹', '”', '›':
        return '"'
    case '‘', '’':
        return '\''
    }
    return in
}</code>

出力

原文: こんにちは、「フランク」または「フランソワ」と呼んでください
Cleaned: Hello "Frank" または "François" と呼んでください

この例では、正規化関数は中引用符と一重引用符を対応する ASCII 文字列にマッピングし、正規化された文字列を生成します。

strings.Map を使用する利点

strings.Map 関数を使用すると、次のような利点があります。

  • 汎用性: を定義できます。カスタム マッピング ルールを使用すると、特定の基準に基づいて文字を変換できます。
  • 効率: マッピング プロセスは高度に最適化されており、効率的な文字の正規化と変換が保証されます。
  • 拡張性: マッピングを簡単に拡張できます。追加の非 ASCII 文字を処理するためのルール。

以上がGo の strings.Map 関数を使用してテキスト入力を ASCII に正規化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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