Runenpaket in Go: Zeichen mit Akzent umwandeln
In Go besteht eine häufige Aufgabe darin, Zeichen mit Akzent in ihre nicht akzentuierten Äquivalente umzuwandeln. Ein Ansatz besteht darin, Unicode-Pakete wie Norm und Text zu verwenden. Allerdings können diese Pakete für Anfänger komplex sein.
Eine einfachere Lösung ist die Verwendung des Runes-Pakets, das in Go 1.5 (veröffentlicht im August 2015) und Go 1.6 (Veröffentlichung geplant im ersten Quartal 2016) eingeführt wurde. Das Paket „runes“ bietet eine einfachere Möglichkeit, Zeichen ohne Leerzeichen (Mn) zu entfernen, die normalerweise für Akzente verantwortlich sind.
Hier ist ein Beispiel für die Verwendung des Pakets „runes“, um Akzente aus einer Zeichenfolge zu entfernen:
<code class="go">import ( "fmt" "runes" "bytes" "code.google.com/p/go.text/transform" "code.google.com/p/go.text/unicode/norm" ) func main() { r := bytes.NewBufferString("Your Śtring") t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC) r = transform.NewReader(r, t) fmt.Println(r) // Output: // Your String }</code>
Dieser Code verwendet die Funktion transform.Chain, um eine Reihe von Transformationen auf die Zeichenfolge anzuwenden. Zunächst wird die Zeichenfolge in ihre Unicode-Normalisierungsform (NFD) zerlegt, um die Basiszeichen von den Akzenten zu trennen. Anschließend wird die Funktion „runes.Remove“ angewendet, um alle Runen herauszufiltern, die in die Kategorie „Mn“ (ohne Abstandszeichen) fallen. Abschließend wird die Zeichenfolge wieder in ihre normalisierte Form (NFC) zusammengesetzt, um alle verbleibenden diakritischen Zeichen zu entfernen.
Dadurch wird die akzentuierte Zeichenfolge „Your Śtring“ nach der Entfernung von non in „Your String“ umgewandelt -Abstandszeichen.
Das obige ist der detaillierte Inhalt vonWie kann ich das Runes-Paket verwenden, um Akzente aus Zeichenfolgen in Go zu entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!