あなたはこのワーキングサンプルコードのように、strings.FieldsFunc
を使用することがあります。
package main
import "fmt"
import "strings"
func find(input string) []string {
return strings.FieldsFunc(input, split)
}
func main() {
strs := find("p -(40) *(GOT) +(FF)")
str := strings.Replace(fmt.Sprint(strs), " ", ", ", -1)
fmt.Println(str)
}
func split(r rune) bool {
return r == ' ' || r == '-' || r == '(' || r == ')' || r == '*' || r == '+'
}
出力:
:あなたはこのワーキングサンプルコードのように、
strings.Fields
その後、
strings.Trim
を使用することができ
[p, 40, GOT, FF]
package main
import "fmt"
import "strings"
func main() {
fmt.Println(find("p -(40) *(GOT) +(FF)"))
}
func find(input string) []string {
strs := strings.Fields(input)
result := make([]string, 0, len(strs))
for _, v := range strs {
s := strings.Trim(v, "()+-*")
if len(s) > 0 {
result = append(result, s)
}
}
return result
}
出力:
[p 40 GOT FF]
また、これはあなたの特別なケースのために働く:
package main
import "fmt"
import "strings"
func main() {
fmt.Println(find("p -(40) *(GOT) +(FF)"))
}
func find(input string) []string {
strs := strings.Fields(input)
for i := 0; i < len(strs); i++ {
strs[i] = strings.Trim(strs[i], "()+-*")
}
return strs
}
出力:
[p 40 GOT FF]
そして、あなたはこの文字列のような出力が必要な場合: [p, 40, GOT, FF]
、このワーキングサンプルコードを試してみてください。
package main
import "fmt"
import "strings"
func main() {
strs := find("p -(40) *(GOT) +(FF)")
str := strings.Replace(fmt.Sprint(strs), " ", ", ", -1)
fmt.Println(str)
}
func find(input string) []string {
strs := strings.Fields(input)
for i := 0; i < len(strs); i++ {
strs[i] = strings.Trim(strs[i], "()+-*")
}
return strs
}
出力:
[p, 40, GOT, FF]
どう正規表現についてはどうですか? – tkausl
返信いただきありがとうございます!私にとってちょっと難しい、私はプログラミングのnoobie .. – jiji
https://play.golang.org/p/dRfMfZhH7- –