package main import ( "fmt" "math/rand" "regexp" "time" ) type Mac struct { Flag string } func NewMac(flag string) Mac { return Mac{Flag:flag} } func (m *Mac)Set(macAddr string)bool{ reg := regexp.MustCompile("^([A-Fa-f0-9]{2}"+m.Flag+"){5}[A-Fa-f0-9]{2}$") result :=reg.Find([]byte(macAddr)) return len(result) != 0 } func main(){ mac := NewMac("#") fmt.Println(mac.Set("11-22-33-44-55-66")) fmt.Println(mac.Set("11#22#33#44#55#66")) fmt.Println(mac.Set("11#22#33#44#F5#66")) fmt.Println(mac.Set("11#22#33#44#F5#6G")) fmt.Println(mac.Set("11#22#33#44#55#")) fmt.Println(mac.Set("11#22#33#44#55#66#dy")) } func test(l int) string{ str := "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" bytes := []byte(str) var result []byte r := rand.New(rand.NewSource(time.Now().UnixNano()+int64(rand.Intn(10)))) for i := 0; i < l; i++ { result = append(result, bytes[r.Intn(len(bytes))]) } return string(result) }