GOLANG从byteslice中修剪前导字符,直到遇到某些特殊字符

时间:2016-05-24 19:32:54

标签: go bytearray

我有一个字节片段,其中包含一个json对象,该对象包含在卷曲框架中,其中包含一些可变长度的前导字符。我需要修剪前导字符,直到遇到第一个花括号。我怎样才能做到这一点?下面是一些代码,只是为了让我知道我想要它的样子," somefunction()"是我希望有人可以告诉我的功能。

var b = []byte("I want this removed {here is some json}")
a := somefunction(b, "{")
fmt.Println(string(a)) // desired output: {here is some json}

2 个答案:

答案 0 :(得分:8)

在字节切片中找到符文'{'的第一个索引并重新切片bbytes包提供了这样的功能:

var b = []byte("I want this removed {here is some json}")
b = b[bytes.IndexRune(b, '{'):]
fmt.Println(string(b))
# {here is some json}

Go Playground

答案 1 :(得分:3)

找到第一个大括号的索引。然后,您可以使用strings.substring,或者您可以切片您的字节数组:

var b = []byte("I want this removed {here is some json}")
i := strings.Index(string(b), "{")
fmt.Println(string(b[i:]))

https://play.golang.org/p/FFFPJEbnLj