我需要一种从git repo url解析repo名称而不使用split函数的方法。
例如,我希望能够执行以下操作
url := "git@github.com:myorg/repo.git"
repoName := parseRepoName(url)
log.Println(repoName) //prints "repo.git"
答案 0 :(得分:2)
使用正则表达式来避免使用你不需要的正则表并且只使用它的麻烦:
name := url[strings.LastIndex(url, "/")+1:]
或者,如果您不确定该网址是否为有效的github网址:
i := strings.LastIndex(url, "/")
if i != -1 {
// Do some error handling here
}
name := url[i+1:]
答案 1 :(得分:1)
我对golang的了解并不是很熟悉。也许你可以用替换而不是拆分。例如,使用以下伪代码。
制作正则表达式.*/
,然后将其替换为字符串。
reg.ReplaceAllString(url, "")
这将替换上一个/
之前的任何内容,并且您将拥有repo.git