import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = ">(?P<Time>.*)\\s+(?P<DeviceIPAddress>\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3})\\s+date=(?P<Date>.*)\\s+time=(?:\\d+\\W+\\d+\\W+\\d+)\\s+devname=(?<DeviceName>.*)\\s+devid=(?P<DeviceID>\\w+)\\s+logid=(?:\\d+)\\s+type=(?P<LogType>\\w+)\\s+subtype=(?P<SubType>\\w+)\\s+level=(?P<Status>\\w+)\\s+vd=(?P<User>\\w+)\\s+logdesc=[\\W+](?P<Message>.*)[\\W+]\\s+session_id=(?P<Session_ID>\\w+)\\s+policyid=(?:\\d+)\\s+srcip=(?P<SourceIP>\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3})\\s+srcport=(?P<SourcePort>\\d+)\\s+dstip=(?P<DestinationIP>\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3})\\s+dstport=(?P<DestinationPort>\\d+)\\s+action=(?P<Action>\\w+)\\s+alert=(?:\\d+)\\s+desc=[\\W+](?P<Description>.*)[\\W+]\\s+msg=[\\W+](?P<msg>.*)[\\W+]";
final String string = "<187>Oct 18 16:24:11 10.76.103.254 date=2020-10-18 time=16:18:44 devname=JAIPUR-FGT60D devid=FGT60D4615072349 logid=0105048038 type=event subtype=wad level=error vd=root logdesc=\"SSL Fatal Alert received\" session_id=3eb37145 policyid=0 srcip=222.186.136.150 srcport=54221 dstip=59.111.181.52 dstport=443 action=receive alert=2 desc=\"bad certificate\" msg=\"SSL Alert received\"";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
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