我正在编写一个函数来在Go中执行基于正则表达式的简单模式匹配,并且需要另外验证我想针对该模式匹配的字符串的长度。 这是我的正则表达式的要求:
func validateUserEnvironmentName(name string) bool {
var validEnvName = regexp.MustCompile(`^[a-zA-Z0-9]+[a-zA-Z0-9_.\-]*[a-zA-Z0-9]{1,255}$`)
return validEnvName.MatchString(name)
}
除了输入超过255个字符的情况外,正则表达式还可以验证所有用例。 Go中的regex是否提供了一种机制来验证整个模式的长度,还是应该修改regex以适应此特定用例?
这是Go Playground链接,可用于测试-https://play.golang.org/p/GmGYh8vtx34
答案 0 :(得分:1)
请勿为此使用正则表达式。只需正常检查字符串的长度即可。正则表达式速度慢且计算量大,因此仅在真正需要它们时才使用。