Golang正则表达式从git url解析回购名称

时间:2017-02-22 16:18:40

标签: regex go

我需要一种从git repo url解析repo名称而不使用split函数的方法。

例如,我希望能够执行以下操作

url := "git@github.com:myorg/repo.git"
repoName := parseRepoName(url)
log.Println(repoName)  //prints "repo.git"

2 个答案:

答案 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