如何用多个定界符分割字符串

如何用多个定界符分割字符串

本文介绍了如何用多个定界符分割字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将字符串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}

这篇关于如何用多个定界符分割字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-06 04:52