Попробуйте следующее регулярное выражение: "(?: [A-zA-Z] \.) {2} ([0-9] {4}) \ @ uts.edu.co"
Я проверил это на примере ваших писем. Используя группу захвата для года, вы можете проверить, что год больше 2018. RegEx будет сопоставлять только те электронные письма, которые соответствуют вашему образцу Letter.Letter.Four Digit Year@uts.edu.co
Вот .java, который я использовал для проверки regEx:
import java.util.regex.Pattern;
открытый класс MainApp {
public static void main(String[] args) {
// reg ex to use: (?:[a-zA-Z]\.){2}([0-9]{4})\@uts.edu.co
String[] email = {"j.g.2018@uts.edu.co","s.c.2019@uts.edu.co","t.t.2020@gmail.com"};
String regExPattern = "(?:[a-zA-Z]\\.){2}([0-9]{4})\\@uts.edu.co";
Pattern p = Pattern.compile( regExPattern );
for(String x : email){
Matcher m = p.matcher( x );
boolean b = m.matches();
if(b){
int year = Integer.parseInt(m.group(1));
if(year > 2018){
System.out.println(x + " is valid");
}
else{
System.out.println(x + " is not valid");
}
}
else{
System.out.println(x + " is not valid");
}
}
}}
Журнал с моей консоли:
j.g.2018@uts.edu.co недействителен
s.c.2019@uts.edu.co действителен
t.t.2020@gmail.com недействителен
Ура!