" word1 word2 word3 word4 "
Was wäre angesichts einer Eingabezeichenfolge wie der beste Ansatz, um diese als Array von Zeichenfolgen in Go aufzuteilen? Beachten Sie, dass zwischen jedem Wort eine beliebige Anzahl von Leerzeichen oder Zeichen mit Unicode-Abstand stehen kann.
In Java würde ich nur verwenden someString.trim().split("\\s+")
.
(Hinweis: Ein möglicher doppelter Split-String mit regulären Ausdrücken in Go liefert keine qualitativ gute Antwort. Bitte geben Sie ein aktuelles Beispiel an, nicht nur einen Link zur Referenz regexp
oder oder zu den strings
Paketen.)
strings.Fields
Ignoriert leider keine Leerzeichen in zitierten Teilen.shlex
für diesen godoc.org/github.com/google/shlexWenn Sie Tipp verwenden: regexp.Split
Teilen Sie Slices s in durch den Ausdruck getrennte Teilzeichenfolgen auf und geben Sie ein Segment der Teilzeichenfolgen zwischen diesen Ausdrucksübereinstimmungen zurück.
Das von dieser Methode zurückgegebene Slice besteht aus allen Teilzeichenfolgen von s, die nicht in dem von FindAllString zurückgegebenen Slice enthalten sind. Wenn ein Ausdruck aufgerufen wird, der keine Metazeichen enthält, entspricht er Zeichenfolgen.SplitN.
Beispiel:
Die Anzahl bestimmt die Anzahl der zurückzugebenden Teilzeichenfolgen:
quelle
Fields()
keine leeren Zeichenfolgen zurückgegeben werden. Die Anzahl der zurückgegebenen Felder variiert also. Wenn Sie versuchen, etwas Konsistentes zu analysieren, funktioniert es für Sie nicht. Möglicherweise müssen Sie Regex verwenden, wenn aFieldsFunc()
auch nicht funktioniert.Ich habe mir Folgendes ausgedacht, aber das scheint etwas zu ausführlich:
welches bewertet wird zu:
Gibt es einen kompakteren oder idiomatischeren Ausdruck?
quelle