import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\d*((\\s)?(m²|m|M)) de bureaux?|bureaux? d'une surface de \\d*((\\s)?(m²|m|M))|bureaux? de \\d*((\\s)?(m²|m|M))";
final String string = "REGEX_1 =(avec|(partie|à usage|compos[ée]) de|(possibilit[eé]|zone|espace)(\\sde)?) bureaux?\n\n"
+ "REGEX_2 =\\d*((\\s)?(m²|m|M)) de bureaux?|bureaux? d'une surface de \\d*((\\s)?(m²|m|M))|bureaux? de \\d*((\\s)?(m²|m|M))\n\n"
+ "REGEX_3 =bureaux? (à l'[eé]tage|[ée]quip[ée]s?|cloisonn[ée]s)\n\n"
+ "REGEX_2NOT = \n"
+ "(proche de bureaux?| \n"
+ "bureaux? proche|\n"
+ "bureaux? [àa] proximit[eé]| \n"
+ "[àa] proximit[eé] de bureaux?)\n\n"
+ "[EXEMPLE]\n"
+ "avec bureau\n"
+ "à usage de bureaux\n"
+ "composé de bureau\n"
+ "d'activites & bureaux\n"
+ "activités/bureaux \n"
+ "une partie de bureau\n"
+ "et bureau\n"
+ "et de bureau \n"
+ "12m² de bureaux\n"
+ "de bureaux de 12m²\n"
+ "bureaux d'une surface de 12m²\n"
+ "bureaux à l'étage\n"
+ "bureaux équipés\n"
+ "zone bureau\n"
+ "bureaux cloisonnés\n"
+ "possibilité de bureau\n"
+ "espace bureau\n\n\n\n"
+ "[NE PAS TENIR COMPTE]\n"
+ "bureaux proche\n"
+ "bureaux à proximité \n"
+ "à proximité de bureau";
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