Diakritische Zeichen in Go entfernen
Bei der Arbeit mit UTF8-codierten Zeichenfolgen kann es erforderlich sein, diakritische Zeichen, wie z. B. die Akzente aus „žůžo“, zu entfernen „um „zuzo“ zu bekommen. Um solche Szenarien effizient zu bewältigen, stehen in Go Standardbibliotheken und -techniken zur Verfügung.
Ein Ansatz besteht darin, die Funktion unicode.Is() zu nutzen, um diakritische Zeichen (als „Mn“ klassifizierte Zeichen für Zeichen ohne Leerzeichen) zu identifizieren.
Der folgende Codeausschnitt zeigt, wie man diakritische Zeichen aus einer bestimmten Zeichenfolge mithilfe von unicode/norm und golang.org/x/text/transform entfernt Pakete:
package main import ( "fmt" "unicode" "golang.org/x/text/transform" "golang.org/x/text/unicode/norm" ) func isMn(r rune) bool { return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks } func main() { t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC) result, _, _ := transform.String(t, "žůžo") fmt.Println(result) }
Dieser Code entfernt diakritische Zeichen durch Anwenden einer Reihe von Transformationen:
Als Ergebnis ist die Ausgabe eine Zeichenfolge ohne diakritische Zeichen, wie im Beispiel: „žůžo“ => „zuzo“.
Das obige ist der detaillierte Inhalt vonWie entferne ich effizient diakritische Zeichen aus UTF-8-Zeichenfolgen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!