私はテキストファイルを入力として受け取り、すべての行を読み込んで電子メールとして検証しようとする小さなスクリプトを作成しました。パスすると、その行を新しい(クリーンな)ファイルに書き出します。渡されない場合は、空白を取り除き、それを再度検証しようとします。現在、この時間が経過すると、その行を新しいファイルに書き込み、失敗した場合はその行を無視します。ファイルに書き込む前に重複を確認する方法はありますか?
私のスクリプトは、出力ファイルに重複した電子メールを書き込む可能性があります。どのように私は周りに移動し、書き込みの前に出力ファイルに存在する重複をチェックする必要がありますか?ここで
は、関連するコードです:
// create reading and writing buffers
scanner := bufio.NewScanner(r)
writer := bufio.NewWriter(w)
for scanner.Scan() {
email := scanner.Text()
// validate each email
if !correctEmail.MatchString(email) {
// if validation didn't pass, strip and lowercase the email and store it
email = strings.Replace(email, " ", "", -1)
// validate the email again after cleaning
if !correctEmail.MatchString(email) {
// if validation didn't pass, ignore this email
continue
} else {
// if validation passed, write clean email into file
_, err = writer.WriteString(email + "\r\n")
if err != nil {
return err
}
}
} else {
// if validation passed, write the email into file
_, err = writer.WriteString(email + "\r\n")
if err != nil {
return err
}
}
}
err = writer.Flush()
if err != nil {
return err
}
それは完璧です。私はあなたのソリューションを組み込むために自分のコードを編集しました。それはエレガントで教えています。ありがとう! – Arthmost