我正在尝试解析git分支名称并将其拆分,以便可以将远程名称和分支名称分开
以前我只是在第一个斜杠上分开:
func ParseBranchname(branchString string) (remote, branchname string) {
branchArray := strings.Split(branchString, "/")
remote = branchArray[0]
branchname = branchArray[1]
return
}
但是我忘了有些人在git分支名称中也使用斜杠,甚至是多个!
现在,我从分割中获取切片中的第一个元素,然后将每个元素都移动一个并合并到斜杠上:
func ParseBranchname(branchString string) (remote, branchname string) {
branchArray := strings.Split(branchString, "/")
remote = branchArray[0]
copy(branchArray[0:], branchArray[0+1:])
branchArray[len(branchArray)-1] = ""
branchArray = branchArray[:len(branchArray)-1]
branchname = strings.Join(branchArray, "/")
return
}
是否有一种更清洁的方法?
strings.SplitN
和strings.SplitN
将结果限制为两个子字符串。