0

この正規表現を使用して、電子メール アドレスを検証しています。特定の行に有効な電子メール アドレスがないことが判明したファイルは削除されます。

 FileInputStream fsdel = new FileInputStream("C:/Folder/" + filefinal[o]);
                BufferedReader brdel = new BufferedReader(new InputStreamReader(fsdel));
                for (int j = 0; j < 4; j++) {
                    brdel.readLine();
                }
                String email = brdel.readLine();
                String mine = email.trim();
                String lineIwant = mine.substring(0, 32).trim();
                // System.out.println("EMAIL ID: " + lineIwant);
                String emailreg = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
                Boolean b = lineIwant.matches(emailreg);

                if (b.toString() == "false") {
                    System.out.println(filedel[o]);
                    fsdel.close();
                    //brdel.close();
                    filedel[o].delete();

                }

このコードは、1 つのファイルが電子メール ID で表示されるまで正常に機能していました。

textsam.textsample@somedomain.co.uk

ファイルは、有効な電子メール アドレスを持たないファイルとして削除されました。上記のメールアドレスを有効なものとして含める方法を教えてください。

4

2 に答える 2

3

メールアドレスを32文字に制限しているのはなぜですか?上記は34文字ですが、

String lineIwant = mine.substring(0, 32).trim();

このSOの質問と回答、および電子メールアドレスの正規表現について説明しているこのWebページも参照してください(現在行っていることよりもかなり複雑です。正規表現を使用してアプローチを再考します)

于 2013-02-19T11:16:41.920 に答える
1

これは文字数制限によるエラーだと思います。メールアドレスは常に 50 文字以上にしてください。私の個人的な実践は 100 です。また、Microsoft ビジュアル スタジオに組み込まれている正規表現の使用を検討してください。

ここにリンクがあります

http://msdn.microsoft.com/en-gb/library/system.text.regularexpressions.regex.aspx

于 2013-02-23T19:30:36.163 に答える