Golang split多个空格

很经常需要对字符串进行解析,解析中间大多是使用空格或者TAB或者制表符进行分割的。但是具体多少个空格很难量化。

在Python语言中我们只需要不带参数就可以轻松分割,比如:

a = '  a  b    c d    e'
print(a.split())

//get return [a, b, c, d, e]

最近在golang里面也是碰到了这样的问题,但是使用方式貌似不太对

错误用法:

错误用法1:
a := "a  b   c d"
res := strings.Split(a, " ")
fmt.Println(res)

//get the result [a, , b,  ,  , c, d]

错误用法2:

a := "a  b   c d"
res := strings.Split(a, "")
fmt.Println(res)

//get the result [a, , ,b, , , ,c, ,d]

自习看了下API文档没有找到什么简单的语法糖或者方法。所以这边最后还是使用正则表达式来处理。

import "regexp"

func main(){
    
    a := "a  b c   d     e"
    r := regexp.MustCompile("[^\\s]+")
	res:= r.FindAllString(a, -1)
    fmt.Println(res)
}

在Go语言中,split函数用于将一个字符串按照指定的分隔符进行分割,并返回一个字符串切片。标准库中的strings包提供了一系列split函数来满足不同的需求。 引用中给出了一个示例的封装函数Split,可以实现返回nil切片的功能。这个函数首先判断输入的字符串s是否为空,如果为空则返回nil;则使用strings.Split函数按照指定的分隔符sep对s进行分割,并返回分割后的结果。 引用中给出了一个名为SplitSeps的函数,可以实现按照多个字符串分隔符进行分割。这个函数接受一个字符串s和多个字符串seps作为参数,如果seps为空,则直接返回包含s的切片,否则使用strings.Split函数对s进行第一次分割,然后对分割后的每个子字符串再次使用新的分隔符进行分割,最后将所有的分割结果合并为一个切片并返回。 引用指出,Go语言的strings包中的Split函数返回的是一个切片,可以将一个字符串按照指定的分隔符分割成多个子字符串。 引用中介绍了另一个与Split函数类似的函数SplitAfter,它会在分隔符之后进行分割。例如,可以使用strings.SplitAfter函数将字符串"hello,world,how,are,you"按照逗号分隔,并得到切片["hello,", "world,", "how,", "are,", "you"]。另外,strings包还提供了SplitAfterN函数,可以限制分割的次数。 综上所述,在Go语言中,split函数可以通过strings包中的多个函数来实现不同的分割需求。可以根据具体的场景选择合适的函数使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值