import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(((20[012]\\d|19\\d\\d)|(1\\d|2[0123]))-((0[0-9])|(1[012]))-((0[1-9])|([12][0-9])|(3[01])))|(((0[1-9])|([12][0-9])|(3[01]))-((0[0-9])|(1[012]))-((20[012]\\d|19\\d\\d)|(1\\d|2[0123])))|(((20[012]\\d|19\\d\\d)|(1\\d|2[0123]))\\/((0[0-9])|(1[012]))\\/((0[1-9])|([12][0-9])|(3[01])))|(((0[0-9])|(1[012]))\\/((0[1-9])|([12][0-9])|(3[01]))\\/((20[012]\\d|19\\d\\d)|(1\\d|2[0123])))|(((0[1-9])|([12][0-9])|(3[01]))\\/((0[0-9])|(1[012]))\\/((20[012]\\d|19\\d\\d)|(1\\d|2[0123])))|(((0[1-9])|([12][0-9])|(3[01]))\\.((0[0-9])|(1[012]))\\.((20[012]\\d|19\\d\\d)|(1\\d|2[0123])))|(((20[012]\\d|19\\d\\d)|(1\\d|2[0123]))\\.((0[0-9])|(1[012]))\\.((0[1-9])|([12][0-9])|(3[01])))";
final String string = "work:\n"
+ "2022-01-01\n"
+ "01-01-2020\n"
+ "1990/01/01\n"
+ "12/30/2020\n"
+ "30/12/2020\n"
+ "30.12.2020\n"
+ "2020.12.30\n"
+ "19-12-30\n"
+ "30-12-19\n"
+ "2020/12/30\n"
+ "12/30/19\n"
+ "30/12/19\n"
+ "30.12.19\n"
+ "19.12.30\n\n"
+ "not work:\n"
+ "1022-01-01\n"
+ "01-15-2020\n"
+ "2990/01/01\n"
+ "13/30/2020\n"
+ "30/13/2020\n"
+ "30.12.9029\n"
+ "2020.14.30\n"
+ "2020.12.33\n"
+ "19-12-33\n"
+ "19-13-30\n"
+ "33-12-19\n"
+ "30-12-35\n"
+ "2020/13/30\n"
+ "2020/12/34\n"
+ "12/30/29\n"
+ "30/12/29\n"
+ "30.12.26\n"
+ "30.12.30\n"
+ "13/30/19\n"
+ "30/13/19\n"
+ "30.13.19\n"
+ "19.13.30\n"
+ "12/33/19\n"
+ "33/12/19\n"
+ "33.12.19\n"
+ "19.12.33\n"
+ "1/1/19\n"
+ "1/01/19\n"
+ "01/1/19\n"
+ "1/01/2019\n"
+ "1/1/2019\n"
+ "01/1/2019\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html