nameComponentRegexpalphaNumericRegexpseparatorRegexpalphaNumericRegexp
optional()
func optional(res ...*regexp.Regexp) *regexp.Regexp {
  返回匹配(组(表达式(res ...))。字符串()+`?`)
}
repeated()
func 重复(res ...*regexp.Regexp) *regexp.Regexp {
  返回匹配(组(表达式(res ...))。字符串()+`+`)
}

因此,您需要的是

/^[a-z0-9]+(?:(?:[._]|__|-*)[a-z0-9]+)*$/

详情

^[a-z0-9]+(?:(?:[._]|__|-*)[a-z0-9]+)*(?:[._]|__|-*).___[a-z0-9]+
aaaa*+

JS 演示: