正規表現で書きなおした。
package main import ( "bufio" "fmt" "log" "os" "regexp" "strings" ) var email_pattern = `^(?i:[^ @"<>]+|".*")@(?i:[a-z1-9.])+.(?i:[a-z])+$` var email_re = regexp.MustCompile(email_pattern) func main() { file, err := os.Open(os.Args[1]) if err != nil { log.Fatal(err) } defer file.Close() scanner := bufio.NewScanner(file) for scanner.Scan() { line := strings.TrimRight(scanner.Text(), "\n") fmt.Println(len(email_re.FindAllString(line, -1)) != 0) } }