Heim >Backend-Entwicklung >Golang >Wie kann ich diakritische Zeichen aus Zeichenfolgen in Go entfernen?

Wie kann ich diakritische Zeichen aus Zeichenfolgen in Go entfernen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-08 11:53:14274Durchsuche

How Can I Remove Diacritics from Strings in Go?

Diakritische Zeichen in Go entfernen

Das Entfernen diakritischer Zeichen (Akzentzeichen) aus UTF-8-codierten Zeichenfolgen ist eine häufige Textverarbeitungsaufgabe. Go stellt zu diesem Zweck mehrere Bibliotheken als Teil seiner Textnormalisierungsdienstprogramme bereit.

Ein Ansatz besteht darin, mehrere Bibliotheken zu kombinieren, wie unten gezeigt:

package main

import (
    "fmt"
    "unicode"

    "golang.org/x/text/transform"
    "golang.org/x/text/unicode/norm"
)

// isMn determines if a rune represents a nonspacing mark (diacritic).
func isMn(r rune) bool {
    return unicode.Is(unicode.Mn, r)
}

func main() {
    // Create a transformation chain to:
    // - Decompose the string into its unicode normalization form (NFD).
    // - Remove all nonspacing marks (diacritics).
    // - Recompose the string into its normalized form (NFC).
    t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC)

    // Apply the transformation to the input string "žůžo".
    result, _, _ := transform.String(t, "žůžo")

    // Print the resulting string, which is "zuzo" without diacritics.
    fmt.Println(result)
}

Das obige ist der detaillierte Inhalt vonWie kann ich diakritische Zeichen aus Zeichenfolgen in Go entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn