gpt4 book ai didi

go - 如何在 Go 中将包含非数字字符的字符串拆分为字符串数组?

转载 作者:IT王子 更新时间:2023-10-29 02:09:50 29 4
gpt4 key购买 nike

如何将包含非数字字符的字符串拆分并过滤为仅包含数字字符的字符串数组?

例如,

str := "035a 444$ bb" 
//split str into s
s := []string{"0", "3", "5", "4", "4", "4"}

最佳答案

你想在这里做两件不同的事情,所以你需要先在脑海中把它们分开:

首先,您要尝试删除所有非数字字符。

其次,您试图将所有剩余字符拆分为包含单个字符的 slice 。

没有内置函数可以从字符串中删除非数字字符,但您可以编写正则表达式匹配和替换来执行此操作:

str := "035a 444$ bb"

reg, err := regexp.Compile("[^0-9]+")
if err != nil {
panic(err)
}

numericStr := reg.ReplaceAllString(str, "")

正则表达式匹配 0-9(含)的任何字符。那么regexp.ReaplceAllString()将这些字符替换为空。

这导致 numericStr 包含字符串

"035444"

之后,您可以使用strings.Split()得到你想要的 slice 。

s := strings.Split(numericStr, "")

文档告诉我们:

If sep is empty, Split splits after each UTF-8 sequence.

所以 s 变成:

[]string{"0", "3", "5", "4", "4", "4"}

关于go - 如何在 Go 中将包含非数字字符的字符串拆分为字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50382818/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com