import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "timeout\\shttp-request\\s+\\d+(?=[\\s\\S]+defaults)";
final String string = "global\n"
+ " log 127.0.0.1 local0\n"
+ " log 127.0.0.1 local1 notice\n"
+ " #log loghost local0 info\n"
+ " maxconn 32768\n"
+ " tune.maxaccept -1\n"
+ " chroot /var/lib/haproxy\n"
+ " daemon\n"
+ " timeout http-request 5000\n"
+ " stats socket /var/run/haproxy.sock mode 600 level admin\n"
+ " stats timeout 2m\n\n"
+ " \n"
+ "defaults\n"
+ " log global\n"
+ " mode http\n"
+ " option httplog\n"
+ " option dontlognull\n"
+ " retries 5\n"
+ " option redispatch\n"
+ " maxconn 16384\n"
+ " timeout connect 7s\n"
+ " timeout client 500s\n"
+ " timeout server 500s\n"
+ " timeout http-request 7000\n"
+ " timeout client-fin 30s\n"
+ " timeout tunnel 1h";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
if (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