import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?P<idval>\\b[A-F\\d]{40}\\b)(.|\\n)*?(?P<ip>\\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b).?(?P<date>\\b\\d{4}(-\\d{2}){2} (\\d{2}:){2}\\d{2}\\b)";
final String string = "\n"
+ "IDVal 4273E6D162ED2717A1CF4207A254004CD3F5307B\n"
+ "Posted 2022-12-28 07:35:55\n"
+ "Status 2022-12-28 08:10:11\n"
+ "Entry 21.12.26.23 2022-12-28 13:10:30\n"
+ "Entry 113.132.26.203 2022-12-28 12:56:30\n"
+ "Entry 31.12.27.22 2022-12-28 12:35:30\n"
+ "IDVal 0D12D8E72DED99EE31BB0C57789352BED0CEEEFF\n"
+ "Posted 2022-12-28 07:30:55\n"
+ "Status 2022-12-28 06:10:11\n"
+ "Entry 51.102.52.36 2022-12-28 07:10:30\n"
+ "IDVal D947623B30C9D6E142E7D90FC7368B1A2A4F5045\n"
+ "Posted 2010-12-27 04:35:55\n"
+ "Status 2010-12-26 03:10:11\n"
+ "Entry 11.12.147.2 2022-12-28 07:20:30\n"
+ "Entry 91.177.62.236 2022-12-27 07:10:30\n"
+ "Entry 78.102.152.89 2022-12-25 07:10:30";
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