Ich schreibe eine Funktion in go, um einzelne Wörter zu bereinigen und dadurch Sonderzeichen am Anfang und Ende jedes Wortes zu entfernen.
Das heißt:
Ich habe das folgende Ergebnis erhalten, indem ich jeden Endbuchstaben einzeln überprüft habe, um zu sehen, ob er zum unicode.letter-Satz gehört. Das funktioniert hervorragend, aber ich habe mich gefragt, ob es einen besseren oder effizienteren Weg gibt, dies zu tun? Ich habe strings.trimleft/right ausprobiert, musste dann aber meinen eigenen Zeichensatz zum Entfernen definieren. Es wäre schön, vordefinierte Sammlungen zu verwenden.
func TrimWord(word []rune) string { var prefix int = 0 var suffix int = len(word) for x := 0; x < len(word); x++ { if !unicode.IsLetter(word[x]) { prefix++ } else { break } } for x := len(word) - 1; x >= 0; x-- { if suffix == prefix { break } if !unicode.IsLetter(word[x]) { suffix-- } else { break } } return string(word[prefix:suffix]) }
package main import ( "fmt" "strings" "unicode" ) func trimword(s string) string { return strings.trimfunc(s, func(r rune) bool { return !unicode.isletter(r) }) } func main() { fmt.println(trimword(`.-hello,`)) // -> hello fmt.println(trimword(`"back-to-back"`)) // -> back-to-back }
//m.sbmmt.com/link/55053683268957697aa39fba6f231c68
hello back-to-back
func TrimFunc(s string, f func(rune) bool) string
trimfunc gibt ein Segment der Zeichenfolge s zurück, wobei alle führenden und nachfolgenden Unicode-Codepunkte c, die f(c) erfüllen, entfernt wurden.
Das obige ist der detaillierte Inhalt vonEntfernen Sie Sonderzeichen aus Wörtern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!