1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| public static void main(final String[] args) {
final boolean avecVirguleFinale = //
false
// true
//
;
final String s = "ou=ab ,ou=cd,ou=efgh, ou=ijkl, ou=mnop ";
Pattern p; // Le Pattern doit être compilé avant la boucle
Matcher m;
if (!avecVirguleFinale) {
// On est obligé de tester la fin de ligne séparémment
p = Pattern.compile("(=).[A-Z ]*(,)|(=).[a-zA-Z]*($)",
Pattern.CASE_INSENSITIVE);
// les () délimitent les groupes
m = p.matcher(s.trim());
} else {
p = Pattern.compile("(=).[A-Z ]*(,)", Pattern.CASE_INSENSITIVE);
// les () délimitent les groupes
m = p.matcher(s.trim() + ",");
}
final int i = m.regionStart();
System.out.println("i==" + i + ", " + m);
while (m.find()) {
System.out.println(m.group().replaceAll("=|,", ""));
}
System.out
.println("--- Avec Scanner + 'avecVirguleFinale = false;' obligatoire ---");
final Scanner scan = new Scanner(s);
// on peut aussi remplacer s par : new File(url_ou_path_fichier);
while (scan.hasNext()) {
final String champLu = scan.next();
System.out.println("scan.hasNext() == " + champLu);
m = p.matcher(champLu.trim());
while (m.find()) {
System.out.println("\t" + m.group().replaceAll("=|,", ""));
}
}
} |
Partager