将字符串转换为数组

Converting a string to array

我正在使用 Go 编写一个 terratest,我有字符串 "[[IFN_EYE_HUBW_DEV_AUTO_01] [IFN_EW_HUBW_DEV_AUTO_02]]"。我怎样才能将它拆分成一个数组以获得 "IFN_EYE_HUBW_DEV_AUTO_01""IFN_EW_HUBW_DEV_AUTO_02" 作为数组的第一个和第二个元素?

您可以简单地替换所有 [],然后将它们与 Fields 拆分为:

package main

import (
    "fmt"
    "strings"
)

func main() {
    inp := "[[IFN_EYE_HUBW_DEV_AUTO_01] [IFN_EW_HUBW_DEV_AUTO_02]]"
    inp = strings.ReplaceAll(inp, "[", "")
    inp = strings.ReplaceAll(inp, "]", "")
    out := strings.Fields(inp)
    fmt.Printf("%v, %v", out[0], out[1])
}

理想情况下,您应该使用正则表达式进行模式匹配,但上面的方法可以很好地完成此任务。

Go demo here

注意:它将替换所有 [] 括号,因此如果字符串具有这些括号,那么也会被替换。

您可能有很多针对此类操作的解决方案,但我建议您使用正则表达式来解决您的问题:

str := "[[IFN_EYE_HUBW_DEV_AUTO_01] [IFN_EW_HUBW_DEV_AUTO_02]]"
re := regexp.MustCompile(`([A-Z0-9_]+)`)
arrayOfStrings := re.FindAllString(str, -1)