java - 我应该更改模式以验证什么?

标签 java regex email rfc822

我必须验证电子邮件的两种类型的表达式:

letter.letter.year 大于 2018@uts.edu.co

j.g.2019@uts.edu.co

0-2018.letter.letter@*.com.co

0.j.g@cloudmail.com.co

我已经使用了这两个正则表达式,但它们没有起作用:

[a-zA-Z] + [.]? [a-zA-Z] + [.]? [2-9] [0-9] (?! 18 $) [1-9] [1-9] ? + $\@uts ([.]) edu ([.]) co

\b([0]|20[0-1][0-8]|2019)\b+[.]? [a-zA-Z] + [.]? [a-zA-Z] +\@ [ a-zA-Z] ([.]) com ([.]) co

private void btn_validarActionPerformed(java.awt.event.ActionEvent evt) {                                            
String w_correo = caja_correo.getText();
Pattern p_correo1 = Pattern.compile("^[a-zA-Z]+[.]?[a-zA-Z]+[ .]?[2-9][0-9](?!18$)[1-9][1-9]?+$\\@uts([.])edu([\\.])co$");
    Matcher m_correo1 = p_correo1.matcher(w_correo);
Pattern p_correo2 = Pattern.compile("^\\b([0]|20[0-1][0-8]|2019)\\b+[.]?[a-zA-Z]+[.]?[a-zA-Z]+\\@ [a-zA-Z] ([.])com([\\.])co$");
    Matcher m_correo2 = p_correo2.matcher(w_correo);    

    if (m_correo1.matches()) {

String validacion = "";
validacion = validacion +  "Direccion de correo electrónico correcta<br/>";
correcto.setForeground(Color.GREEN);

}

    else { 
String validacion = "";
    if (!m_correo1.matches()) {
    validacion= validacion + "Direccion de correo electrónico incorrecta<br/>";
            incorrecto.setBackground(Color.RED);
    }
}

    if (m_correo2.matches()) { 

String validacion = "";
validacion = validacion +  "Direccion de correo electrónico correcta<br/>";
correcto.setForeground(Color.GREEN);
}

    else {String validacion = "";
    if (!m_correo2.matches()) {
    validacion= validacion + "Direccion de correo electrónico incorrecta<br/>";
            incorrecto.setBackground(Color.RED);
    }
}
}                                           

当您尝试验证有效的电子邮件时,结果是电子邮件不正确。按钮 NO 显示为红色,但按钮 SI 未显示为绿色。

最佳答案

下面的正则表达式匹配您描述的模式:“letter.letter.year greater than 2018@uts.edu.co”。

([a-zA-Z]\.){2}([2-9][1-9][0-9]{2}|20([2-9][0-9]|19))@uts\.edu\.co

([a-zA-Z]\.){2} matches any letter followed by a period two times.
([2-9][1-9][0-9]{2}|20([2-9][0-9]|19)) matches the year 2019 or greater
@uts\.edu\.co matches @uts.edu.co literally.

在这里试试:https://regex101.com/r/hNIMRL/1

关于java - 我应该更改模式以验证什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55672162/

相关文章:

java - 将数据对象检索到 ListView 时,Firebase 返回随机值

JAVA - 图形不更新

javascript - 为什么这三个正则表达式拆分字符串不同,即使它们看起来相同?

Javascript 字符串操作

bash - 此处文档给出 'unexpected end of file' 错误

email - 从 mediawiki 中的电子邮件生成文章

java - 无法在我的项目 maven 中添加具有范围的 jar

Java构造函数

javascript - 正则表达式匹配从 100 到 300 的字符串

email - 为什么我的邮件发件人与我的发件人 header 不同是可以接受的?