import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?!(?:\\s*$|.*(?:Niveau|stime)))(.*$)([\\s\\S]*?)(\\1\\s*)";
final String string = "vide vide Time: stime 3:30 PM vide vide \n"
+ "NN NN NP stime LS NP NN NN \n"
+ " ----------Niveau 1-------------- \n"
+ "Time: | 0 | 263.0 | 266.0 | 0,0113 \n"
+ "NP | 0 | 0.0 | 24885.0 | 1 \n"
+ "3:30 | -0 | 104.0 | 120.0 | 0,1333 \n"
+ "LS | -0 | 0.0 | 13134.0 | 1 \n"
+ "PM | -1 | 134.0 | 238.0 | 0,437 \n"
+ "NP | -1 | 0.0 | 24885.0 | 1 \n"
+ " ----------Niveau 2-------------- \n"
+ "3:30 PM | -0 | 30.0 | 41.0 | 0,2683 \n"
+ "3:30 NP | -0 | 133.0 | 55.0 | -1,4182 \n"
+ "LS PM | -0 | 42.0 | 237.0 | 0,8228 \n"
+ "LS NP | -0 | 0.0 | 2456.0 | 1 \n"
+ " ----------Niveau 3-------------- \n\n\n"
+ "vide vide Time: stime 3:30 pm vide vide \n"
+ "NN NN NP stime LS NN NN NN \n"
+ " ----------Niveau 1-------------- \n"
+ "Time: | 0 | 263.0 | 266.0 | 0,0113 \n"
+ "NP | 0 | 0.0 | 24885.0 | 1 \n"
+ "3:30 | -0 | 104.0 | 120.0 | 0,1333 \n"
+ "LS | -0 | 0.0 | 13134.0 | 1 \n"
+ "pm | -1 | 38.0 | 54.0 | 0,2963 \n"
+ "NN | -1 | 0.0 | 59511.0 | 1 \n"
+ " ----------Niveau 2-------------- \n"
+ "3:30 pm | -0 | 9.0 | 9.0 | 0 \n"
+ "3:30 NN | -0 | 36.0 | 24.0 | -0,5 \n"
+ "LS pm | -0 | 22.0 | 52.0 | 0,5769 \n"
+ "LS NN | -0 | 0.0 | 2658.0 | 1 \n"
+ " ----------Niveau 3-------------- ";
final String subst = "\\1\\2";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
}
}
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