go正则扫描确认
func Confirm(prompt, cancel string) (bool, error) {
var yesRx = regexp.MustCompile("^(?:y(?:es)?)$")
var noRx = regexp.MustCompile("^(?:n(?:o)?)$")
var input string
for {
fmt.Printf("%s Yes [y/yes], No [n/no] : ", prompt)
_, err := fmt.Scanln(&input)
if err != nil {
return false, err
}
if yesRx.MatchString(input) {
return true, nil
}
if noRx.MatchString(input) {
fmt.Print(cancel)
return false, nil
}
}
}