本文介绍了如何用多个定界符分割字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将字符串xxxxx:yyyyy:zzz.aaa.bbb.cc:dd:ee:ff解析为Go中的结构,如何使用多个定界符':'和'.'来实现.>
我想分割字符串"xxxxx:yyyyy:zzz.aaa.bbb.cc:dd"进入以下结构类型
type目标结构体{服务字符串类型字符串域字符串计划字串主机字符串区域字符串其他字符串}
如此
服务= xxxxx类型= yyyyy域= zzzz计划= aaa主持人= bbb区域= cc其他= dd
解决方案
您可以使用
strings.FieldsFunc(输入,拆分)
在围棋场上尝试一下:
程序包主要进口 ("fmt"弦乐")func main(){输入:=`xxxxx:yyyyy:zzz.aaa.bbb.cc:dd:ee:ff`一个:= strings.FieldsFunc(input,Split)t:=目标{a [0],a [1],a [2],a [3],a [4],a [5],a [6]}fmt.Println(t)//{xxxxx yyyyy zzz aaa bbb cc dd}}func Split(r rune)bool {返回r ==':'||r =='.}输入Target struct {服务字符串类型字符串域字符串计划字串主机字符串区域字符串其他字符串}
输出:
{xxxxx yyyyy zzz aaa bbb cc dd}
I want to parse a string xxxxx:yyyyy:zzz.aaa.bbb.cc:dd:ee:ff to a struct in Go, how can I do it with multiple delimiter ':' and '.'.
Edit:
I want to split the string "xxxxx:yyyyy:zzz.aaa.bbb.cc:dd" into below struct type
type Target struct {
Service string
Type string
Domain string
Plan string
Host string
Region string
Other string
}
So that
Service = xxxxx
Type = yyyyy
Domain = zzzz
Plan = aaa
Host = bbb
Region = cc
Other = dd
解决方案
You may use
strings.FieldsFunc(input, Split)
Try it on The Go Playground:
package main
import (
"fmt"
"strings"
)
func main() {
input := `xxxxx:yyyyy:zzz.aaa.bbb.cc:dd:ee:ff`
a := strings.FieldsFunc(input, Split)
t := Target{a[0], a[1], a[2], a[3], a[4], a[5], a[6]}
fmt.Println(t) // {xxxxx yyyyy zzz aaa bbb cc dd}
}
func Split(r rune) bool {
return r == ':' || r == '.'
}
type Target struct {
Service string
Type string
Domain string
Plan string
Host string
Region string
Other string
}
output:
{xxxxx yyyyy zzz aaa bbb cc dd}
这篇关于如何用多个定界符分割字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!