import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?P<srx_eventType>RT_FLOW_.+):\\s\\w+\\s\\w+\\s(?P<srx_sourceIP>\\d+\\.\\d+\\.\\d+\\.\\d+)\\/(?P<srx_sourcePort>\\d+)->(?P<srx_destinationIP>\\d+\\.\\d+\\.\\d+\\.\\d+)\\/(?P<srx_destinationPort>\\d+)\\s0x0\\s(?P<srx_Application>\\S+)\\s(?:\\d\\(\\d\\))?(?:\\d+\\.\\d+\\.\\d+\\.\\d+\\/\\d+->\\d+\\.\\d+\\.\\d+\\.\\d+\\/\\d+\\s0x0\\s)?(?:(?:N\\/A\\s)+)?(?:(?P<srx_natType>[a-z]+)\\srule\\s(?P<srx_natRule>\\S+)\\s)?(?:(?:N\\/A\\s)+)?(?:\\d+)?\\s(?P<srx_policyName>\\S+)\\s(?P<srx_zoneIn>\\S+)\\s(?P<srx_zoneOut>\\S+)\\s(?:(?:UNKNOWN UNKNOWN)|(?:\\d+))\\sN\\/A\\(N\\/A\\)\\s(?P<srx_interfaceIn>\\S+)";
final String string = "Jul 5 15:25:01 10.151.18.1 Jul 5 20:25:01 srx21 RT_FLOW: RT_FLOW_SESSION_DENY: session denied 136.62.186.217/62724->96.47.223.17/445 0x0 junos-smb-session 6(0) default-drop Outside DMZ UNKNOWN UNKNOWN N/A(N/A) reth0.0 UNKNOWN policy deny\n"
+ "Jul 6 14:16:13 10.151.18.1 Jul 6 19:16:12 srx21 RT_FLOW: RT_FLOW_SESSION_CREATE: session created 10.151.10.61/48040->10.151.150.18/8080 0x0 None 10.151.10.61/48040->10.151.150.18/8080 0x0 N/A N/A N/A N/A 6 DMZ-Trust_any DMZ Trust 1858740 N/A(N/A) reth2.10 UNKNOWN UNKNOWN UNKNOWN\n"
+ "Jul 6 14:16:13 10.151.18.1 Jul 6 19:16:12 srx21 RT_FLOW: RT_FLOW_SESSION_CREATE: session created 10.151.150.121/34954->209.239.233.7/443 0x0 junos-https 64.17.7.244/42525->209.239.233.7/443 0x0 source rule r1 N/A N/A 6 outside-access Trust Outside 1503483 N/A(N/A) reth1.190 UNKNOWN UNKNOWN UNKNOWN\n"
+ "Jul 6 14:16:13 10.151.18.1 Jul 6 19:16:12 srx21 RT_FLOW: RT_FLOW_SESSION_CREATE: session created 73.152.202.193/47878->64.17.7.246/53 0x0 junos-dns-udp 73.152.202.193/47878->10.151.10.64/53 0x0 N/A N/A static rule external-dns 17 external-dns Outside DMZ 1200031 N/A(N/A) reth0.0 UNKNOWN UNKNOWN UNKNOWN\n"
+ "Jul 6 17:10:13 10.151.18.1 Jul 6 22:10:12 srx21 RT_FLOW: RT_FLOW_SESSION_CREATE: session created 66.87.85.217/16879->96.47.221.72/443 0x0 junos-https 66.87.85.217/16879->10.151.10.66/443 0x0 N/A N/A destination rule websites-221 6 webtraffic-in Outside DMZ 931704 N/A(N/A) reth0.0 UNKNOWN UNKNOWN UNKNOWN\n";
final Pattern pattern = Pattern.compile(regex);
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