import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(EventCode=(4624|4634|4625)\\X*Account Name:(\\s+.*\\.adm.*))|(EventCode=(4659|4663|5145)\\X*Object Name:(\\s+.*Test_share.*))";
final String string = "05/03/2024 02:46:06 PM\n"
+ "LogName=Security\n"
+ "EventCode=4624\n"
+ "EventType=0\n"
+ "ComputerName=myhost\n"
+ "SourceName=Microsoft Windows security auditing.\n"
+ "Type=Information\n"
+ "RecordNumber=0\n"
+ "Keywords=Audit Success\n"
+ "TaskCategory=Logon\n"
+ "OpCode=Info\n"
+ "Message=An account was successfully logged on.\n\n"
+ "Subject:\n"
+ " Security ID: NULL SID\n"
+ " Account Name: -\n"
+ " Account Domain: -\n"
+ " Logon ID: 0x0\n\n"
+ "Logon Information:\n"
+ " Logon Type: 3\n"
+ " Restricted Admin Mode: -\n"
+ " Virtual Account: No\n"
+ " Elevated Token: Yes\n\n"
+ "Impersonation Level: Delegation\n\n"
+ "New Logon:\n"
+ " Security ID: DOMAIN\\user.adm\n"
+ " Account Name: user.adm\n"
+ " Account Domain: DOMAIN.LOCAL\n"
+ " Logon ID: 0\n"
+ " Linked Logon ID: 0x0\n"
+ " Network Account Name: -\n"
+ " Network Account Domain: -\n"
+ " Logon GUID: {}\n\n"
+ "Process Information:\n"
+ " Process ID: 0x0\n"
+ " Process Name: -\n\n"
+ "Network Information:\n"
+ " Workstation Name: -\n"
+ " Source Network Address: \n"
+ " Source Port: 63095\n\n"
+ "Detailed Authentication Information:\n"
+ " Logon Process: Kerberos\n"
+ " Authentication Package: Kerberos\n"
+ " Transited Services: -\n"
+ " Package Name (NTLM only): -\n"
+ " Key Length: 0\n\n\n\n"
+ "04/30/2024 04:49:05 PM\n"
+ "LogName=Security\n"
+ "EventCode=4659\n"
+ "EventType=0\n"
+ "ComputerName=MyHost\n"
+ "SourceName=Microsoft Windows security auditing.\n"
+ "Type=Information\n"
+ "RecordNumber=0\n"
+ "Keywords=Audit Success\n"
+ "TaskCategory=File System\n"
+ "OpCode=Info\n"
+ "Message=A handle to an object was requested with intent to delete.\n\n"
+ "Subject:\n"
+ " Security ID: myuser\n"
+ " Account Name: myuser\n"
+ " Account Domain: Domain\n"
+ " Logon ID: 0x580B3D59\n\n"
+ "Object:\n"
+ " Object Server: Security\n"
+ " Object Type: File\n"
+ " Object Name: D:\\Test_share\\prova.txt\n"
+ " Handle ID: 0x0\n\n"
+ "Process Information:\n"
+ " Process ID: 0x4\n\n"
+ "Access Request Information:\n"
+ " Transaction ID: {00000000-0000-0000-0000-000000000000}\n"
+ " Accesses: DELETE\n"
+ " ReadAttributes\n"
+ " \n"
+ " Access Mask: 0x10080\n"
+ " Privileges Used for Access Check: -";
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