2013-02-19 117 views
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(); 

       } 

这段代码一直工作正常,直到一个文件出现了一个电子邮件ID:

[email protected] 

该文件已被删除作为一个没有有效的电子邮件地址。有人可以帮助我如何包含上述电子邮件地址作为一个有效的?

+0

http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address – ellak 2013-02-19 11:17:26

+0

'+ @。 + \\。[az] +' – 2013-02-19 11:20:35

回答

3

为什么要将电子邮件地址限制为32个字符?以上是34个字符,但你通过

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

见限制也this SO question and the answersthis web page讨论的电子邮件地址的正则表达式(这是大大比你目前正在做的事情比较复杂,我会重新考虑你的方法重新。使用正则表达式)

+0

对不起,我从来没有注意到....我的错。 – ErrorNotFoundException 2013-02-19 11:31:46

相关问题