慕哥9229398
环顾四周后,我认为@tshiono的想法是最有意义的,但正则表达式与我的期望不符。我最终得到了这样的东西package mainimport ( "fmt" "regexp")func main() { st := []string{ "test-adccount", "s-asdgaysdtuaystdua", "2342348jtdstyfu", "kdshkjfshdkfjhd-jkshdfjkshdf", "uysiufysdusidyf-jsdkhfjksdhf", "ausyduaysidyaisyd", "2abc-f", "d-23423423", "-iasodaisdyauiysd", "sudyfisdufy82|ldjf", "klskdjfsd898883---sdfkjskdfjsld", }for _, s := range st { r1 := regexp.MustCompile(`^([\da-zA-Z]+)([\da-zA-Z-]+)$`) r2 := regexp.MustCompile(`^(d-).+$`) if r1.MatchString(s) && !r2.MatchString(s) { fmt.Println(fmt.Sprintf("%s :: matched", s)) } else { fmt.Println(fmt.Sprintf("%s :: does not matched", s)) } }}https://play.golang.org/p/j-7INwyDwU4