import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "CONN\\:.*?prio=(?<severity>\\d)\\s+id=(?<vmid>\\d+).*?event=(?<tag1>\\w+)\\s+rule=(?<tag2>\\w+)\\s+conn=(?<tag3>\\w+)\\s+connipproto=(?<protname>\\w+)\\s+connrecvif=(?<dinterface>\\w+)\\s+connsrcip=(?<sip>(\\d{1,3}\\.){3}\\d{1,3})\\s+connsrcport=(?<sport>\\d+).*?conndestip=(?<dip>(\\d{1,3}\\.){3}\\d{1,3})\\s+conndestport=(?<dport>\\d+)";
final String string = "06 12 2017 22:31:35 1.2.1.1 <LOC0:INFO> 1 2017-06-12T22:31:35+02:00 dedusfw EFW - - - CONN: prio=1 id=00600001 rev=1 event=conn_open rule=local_to_nds_dc conn=open connipproto=TCP connrecvif=GESW_vlan2 connsrcip=1.1.1.7 connsrcport=51435 conndestif=G1_vlan253 conndestip=4.1.1.1 conndestport=443\n\n\n\n"
+ "CONN\\:.*?prio=(?<severity>\\d)\\s+id=(?<vmid>\\d+).*?action=(?<action>\\w+).*?rule=(?<tag1>.*?)\\s+recvif=(?<tag2>.*?)\\s+srcip=<sip>";
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