使用正则表达式验证电子邮件地址
问题描述:
我一直在使用这个正则表达式来验证电子邮件地址。找到的文件不会对一定行有效的电子邮件地址被删除:使用正则表达式验证电子邮件地址
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]
该文件已被删除作为一个没有有效的电子邮件地址。有人可以帮助我如何包含上述电子邮件地址作为一个有效的?
答
为什么要将电子邮件地址限制为32个字符?以上是34个字符,但你通过
String lineIwant = mine.substring(0, 32).trim();
见限制也this SO question and the answers和this web page讨论的电子邮件地址的正则表达式(这是大大比你目前正在做的事情比较复杂,我会重新考虑你的方法重新。使用正则表达式)
+0
对不起,我从来没有注意到....我的错。 – ErrorNotFoundException 2013-02-19 11:31:46
答
我相信你这是由于字符限制发生的错误。总是留下至少50个字符的电子邮件地址。我的个人实践是100, 另外考虑在Microsoft visual studio中内置正则表达式,它应该让你的工作变得更容易。
这里有一个链接
http://msdn.microsoft.com/en-gb/library/system.text.regularexpressions.regex.aspx
http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address – ellak 2013-02-19 11:17:26
'+ @。 + \\。[az] +' – 2013-02-19 11:20:35