我已经尝试在 Go 中使用正则表达式转换 Github 用户名约定有一段时间了,但我无法做到。另外,用户名长度不应超过 39 个字符。
以下是来自 Github 的用户名约定
用户名只能包含字母数字字符或单个连字符,并且不能以连字符开头或结尾。
和长度
用户名太长(最多 39 个字符)。
这是我写的代码。你可以在Go Playground中查看
package main
import (
"fmt"
"regexp"
)
func main() {
usernameConvention := "^[a-zA-Z0-9]*[-]?[a-zA-Z0-9]*$"
if re, _ := regexp.Compile(usernameConvention); !re.MatchString("abc-abc") {
fmt.Println("false")
} else {
fmt.Println("true")
}
}
目前,我可以实现这些:
a-b // true - Working!
-ab // false - Working!
ab- // false - Working!
0-0 // true - Working!
但我面临的问题是我找不到适用于以下场景的正则表达式模式:
a-b-c // false - Should be true
此外,它必须在 39 个字符以内,我发现我们可以使用{1,38},但我不知道应该在正则表达式模式中将其添加到哪里。
繁星淼淼
相关分类