【问题标题】:Validating Email address using regex使用正则表达式验证电子邮件地址
【发布时间】:2023-04-05 23:56:01
【问题描述】:

我一直在使用这个正则表达式来验证电子邮件地址。删除某行中没有有效电子邮件地址的文件:

 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 的文件:

textsam.textsample@somedomain.co.uk

该文件已被删除,因为它没有有效的电子邮件地址。有人可以帮助我了解如何将上述电子邮件地址包含为有效地址吗?

【问题讨论】:

标签: java regex email


【解决方案1】:

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

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

另请参阅 this SO question and the answersthis web page 讨论电子邮件地址正则表达式(它相当比您目前正在做的更复杂,我会重新考虑您的方法。使用正则表达式)

【讨论】:

    【解决方案2】:

    我相信你这是由于字符限制而发生的错误。始终为电子邮件地址保留至少 50 个字符。我个人的练习是100, 还可以考虑使用 Microsoft Visual Studio 中内置的正则表达式,它应该会让你的事情变得更容易。

    这是一个链接

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 2016-01-21
      • 2021-05-02
      相关资源
      最近更新 更多