import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "construit dans les ann[eé]es (\\d{2,4})";
final String string = "[DATE DE CONSTRCUTION]\n\n"
+ "R1 = date de constuction \\W (\\d{4}[-/]\\d{4}|((\\w{3,12})\\s)?\\d{4}|(\\d{1,2}(\\s?er)?)? \\w{3,10} \\d{4}|\\d{2}/\\d{2}/\\d{2,4}|[ST]\\d{1,4} \\d{4}|((fin|d[ée]but)\\s)?[1234](er|[eè]mes?) (semestre|trimestre)|courant \\w{3,10}(\\s\\d{4})?|\\w{3,10}/\\w{3,10} \\d{4}|((fin|d[ée]but)\\s)?(semestre|trimestre) \\d{1,4} \\d{4})\n\n"
+ "date de constuction : 2000-2001\n"
+ "date de constuction : 1999/2000\n"
+ "date de constuction : 01/01/2020 \n"
+ "date de constuction : 01/01/03 \n"
+ "date de constuction : 1er janvier 2020\n"
+ "date de constuction : 1 er janvier 2020\n"
+ "date de constuction : 31 décembre 1997\n"
+ "date de constuction : juin 2020\n"
+ "date de constuction : Juillet/Juillet 2021\n"
+ "date de constuction : courant Juin\n"
+ "date de constuction : courant Juin 2003\n"
+ "date de constuction : été 2021\n"
+ "date de constuction : semestre 2 2028\n"
+ "date de constuction : début semestre 2 2028\n"
+ "date de constuction : S1 2024\n"
+ "date de constuction : T3 2020\n"
+ "date de constuction : 2ème semestre\n"
+ "date de constuction : 1er semestre\n"
+ "date de constuction : fin 2ème semestre\n"
+ "date de constuction : début 2020\n"
+ "date de constuction : fin 2022)\n\n"
+ "[CONSTRUIT EN]\n\n"
+ "R2 = construite?(\\s\\w{2,4})? (\\d{4}[-/]\\d{4}|((\\w{3,12})\\s)?\\d{4}|(\\d{1,2}(\\s?er)?)? \\w{3,10} \\d{4}|\\d{2}/\\d{2}/\\d{2,4}|[ST]\\d{1,4} \\d{4}|((fin|d[ée]but)\\s)?[1234](er|[eè]mes?) (semestre|trimestre)|courant \\w{3,10}(\\s\\d{4})?|\\w{3,10}/\\w{3,10} \\d{4}|((fin|d[ée]but)\\s)?(semestre|trimestre) \\d{1,4} \\d{4})\n\n"
+ "construit en 1996\n"
+ "construit en 2006\n"
+ "construit en 2000-2001\n"
+ "construit en 1999/2000\n"
+ "construit le 01/01/2020 \n"
+ "construit le 1er janvier 2020\n"
+ "construit en Juin 2020 \n"
+ "construit en Juillet/Juillet 2021\n"
+ "construit courant Juin\n"
+ "construit à l'été 2021\n"
+ "construit au Semestre 2 2028, \n"
+ "construit au S1 2024\n"
+ "construit au T3 2020\n"
+ "construit au 2ème semestre\n"
+ "construit fin 2ème semestre\n"
+ "construit début 2020\n"
+ "construit fin 2022\n\n"
+ "R3 = construit dans les ann[eé]es (\\d{2,4})\n"
+ "construit dans les années 90 \n"
+ "construit dans les années 2000\n\n"
+ "construit au siècle dernier ??";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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