如何用多个定界符分割字符串 [英] How to split a string by multiple delimiters

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

问题描述

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

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆