Pattern split

agent47

Aktives Mitglied
Ich möchte eine Log Datei einlesen lassen. Dazu muss ich mit split die einzelnen Log Einträge trennen.
Das funktioniert mit der Folgende Zeile auch sehr gut mit der Fehlernummer als trenner (Fehlernummer hat 4 oder mehr Ziffern).

Java:
String[] logEntrys = Pattern.compile("\\d{4,}").split(content);

Nun benötige ich aber auch die Fehlernummer, die ja bei dem Verfahren dann nicht mit in der Ausgabe auftaucht. Wie bekomme ich das hin das der Trenner auch mit in der Ausgabe landet.

In PHP gibt es ja das Flag PREG_SPLIT_DELIM_CAPTURE das angibt das auch klammerausdrücke aus dem Pattern mit übernommen werden, so etwas kann ich in Java aber nicht finden.
 

Enceladus271

Bekanntes Mitglied
Die split Methode bietet so eine Möglichkeit leider nicht. Du könntest mit Matchern arbeiten:
Java:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class PatternExample {

   public static void main( String[] args ) {
     final Pattern pattern = Pattern.compile( "\\d{4}(.(?!\\d{4}))*", Pattern.DOTALL );
     final String text = "1234 Meldung 47 bla 2345 noch ein Logeintrag 3456 Letzte Meldung";

     final Matcher matcher = pattern.matcher( text );
     while ( matcher.find() ) {
       System.out.println( matcher.group() );
     }
   }
}
Das (?! im Pattern ist ein negativer Lookahead. Das DOTALL brauchst du nur wenn Meldungen auch über mehrere Zeilen gehen können.

Ich sehe allerdings ein Problem bei denjenigen Logmeldungen, die Zahlen mit 4 Stellen oder mehr enthalten. Dort kannst du nicht unterscheiden ob eine Logmeldung anfängt oder die Zahl Teil einer Meldung ist (das Problem hast du beim split genau so). Wenn die 4-stelligen Zahlen immer am Anfang einer Zeile stehen kannst du das Pattern abändern zu:
Pattern.compile( "^\\d{4}(.(?!\\d{4}))*", Pattern.DOTALL | Pattern.MULTILINE );

Optimal wäre es, wenn jede Meldung in der Logdatei in einer eigenen Zeile steht. Dann würde es mehr Sinn machen die Datei Zeilenweise einzulesen und sich die Zeilen einzeln vorzunehmen.
 

agent47

Aktives Mitglied
Leider habe ich auf das Format der Log Datei keinen Einfluss. Jeder Log Eintrag kann theoretisch beliebig viele Zeilen umfassen.

ich habe jetzt eine Lösung gefunden indem ich den Ausdruck zum splitten zu einem Lookaround umgewandelt haben und damit anhand einer Position splitte anstatt einer Zeichenkette.

Java:
String[] logEntrys = Pattern.compile("((\\r\\n)|\\r|\\n|\\s{2,})(?=[\\d]{4,8})").split(content);
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D was ist der vorteil vom Builder-design pattern? Java Basics - Anfänger-Themen 11
W GoF-Pattern im Programmierer-Alltag Java Basics - Anfänger-Themen 113
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J Methoden Observer-Pattern mit Consumer und accept( ) Java Basics - Anfänger-Themen 6
Dimax Erste Schritte Pattern.matcher,die Besonderheiten. Java Basics - Anfänger-Themen 12
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
J Implementierung von Observer und Singleton-Pattern Java Basics - Anfänger-Themen 9
F Design pattern Java Basics - Anfänger-Themen 29
W RegEx Matcher + Pattern und Emails Java Basics - Anfänger-Themen 8
M Schlüsselworte Unterschied: String.matches und Pattern.compile Java Basics - Anfänger-Themen 2
C Best Practice JTable in MVC Pattern Java Basics - Anfänger-Themen 7
D Design Pattern Command Java Basics - Anfänger-Themen 3
Bregedur Methoden Matcher und Pattern bei sich wiederholenden Werten Java Basics - Anfänger-Themen 1
fLooojava MVC Pattern und Observer Pattern Java Basics - Anfänger-Themen 6
S Regex Pattern Java Basics - Anfänger-Themen 3
Z Pattern und Matcher substring zu String möglich? Java Basics - Anfänger-Themen 4
B Pattern für Email Liste Java Basics - Anfänger-Themen 3
J Builder Pattern implementieren Java Basics - Anfänger-Themen 3
Tarrew Proxy Design-Pattern Java Basics - Anfänger-Themen 1
M Methoden Pattern Matching Vokal Java Basics - Anfänger-Themen 2
J MVC Pattern, mehrere Controller/Views/Models Java Basics - Anfänger-Themen 0
B Strategy Pattern - Rechner Java Basics - Anfänger-Themen 6
I Vertändnisfrage zu Prototype Pattern Java Basics - Anfänger-Themen 0
L Kompositum-Pattern Hilfe :O Java Basics - Anfänger-Themen 4
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
S Je nach erhaltene Daten unterschiedlich reagieren (Design Pattern?) Java Basics - Anfänger-Themen 3
B Pattern Matching ohne Match-Methoden Java Basics - Anfänger-Themen 11
Furtano OOP Memento Pattern | übergabe einer Kopie des Arrays Java Basics - Anfänger-Themen 0
F Erste Schritte Pattern zum Zerlegen von selbstdefinierten Dateinamen Java Basics - Anfänger-Themen 7
M MVC + Strategy Pattern Ansatz (mit Code) Java Basics - Anfänger-Themen 5
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
Rudolf OOP Übungen zu Design Pattern in Java Java Basics - Anfänger-Themen 6
A Observer Pattern Problem Java Basics - Anfänger-Themen 15
J Interface Frage zu Interfces am Beispiel Observer Pattern Java Basics - Anfänger-Themen 8
S OOP Regex Pattern Java Basics - Anfänger-Themen 2
P Grundsatzfrage zu Decorator-Pattern Java Basics - Anfänger-Themen 6
L Pattern Matching Java Basics - Anfänger-Themen 3
L RegExp bzw Pattern in Java Java Basics - Anfänger-Themen 6
Helgon Observer Pattern - hasChanged() immer false Java Basics - Anfänger-Themen 10
R aktualisierung des View im MVC-Pattern Java Basics - Anfänger-Themen 5
M RegEx Pattern Matcher Java Basics - Anfänger-Themen 16
R Pattern bzw. Regex HTML-Code Java Basics - Anfänger-Themen 10
N Regexp Pattern & Matcher Problem Java Basics - Anfänger-Themen 4
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
R Welches Design pattern Java Basics - Anfänger-Themen 10
B static und Pattern matching Java Basics - Anfänger-Themen 22
T pattern klappt nicht so Java Basics - Anfänger-Themen 6
T Decorator Pattern Java Basics - Anfänger-Themen 7
A Pattern und Matcher Java Basics - Anfänger-Themen 9
T Frage zu Pattern/Matcher Java Basics - Anfänger-Themen 6
D Pattern in Midi-Sequencer Java Basics - Anfänger-Themen 2
V Frage zu Decorator-Pattern Java Basics - Anfänger-Themen 4
S OOP Factory Pattern Java Basics - Anfänger-Themen 2
C OOP Observer Pattern Java Basics - Anfänger-Themen 2
M Regex-Pattern Java Basics - Anfänger-Themen 2
Haubitze_Broese Pattern für Links in RSS-Reader Java Basics - Anfänger-Themen 6
Raidri Pattern liefert false Java Basics - Anfänger-Themen 9
megachucky regex-Problem ( mit den Klassen Matcher / Pattern) --> XML prüfen Java Basics - Anfänger-Themen 11
O useDelimiter / Muster im Parameter (Pattern) Java Basics - Anfänger-Themen 6
S Problem mit Pattern Java Basics - Anfänger-Themen 2
S Pattern.matches mit Ignore Case Java Basics - Anfänger-Themen 2
N in int array einen pattern(eine zahl) finden Java Basics - Anfänger-Themen 21
A Hilfe zu Pattern Java Basics - Anfänger-Themen 2
Y Pattern Java Basics - Anfänger-Themen 2
A Proxy Pattern implementieren Java Basics - Anfänger-Themen 2
N OOP MVC Pattern Java Basics - Anfänger-Themen 3
G Probleme mit Pattern und Aussagenlogik Java Basics - Anfänger-Themen 6
H Verständnis Strategy Pattern Java Basics - Anfänger-Themen 4
D regexp-pattern .. letzter schliff Java Basics - Anfänger-Themen 6
A ist das ein Singleton-Pattern? Java Basics - Anfänger-Themen 6
Z regexp/pattern für dateipfad Java Basics - Anfänger-Themen 5
A Factory Pattern Java Basics - Anfänger-Themen 2
D Objekte anlegen und Singleton Pattern Java Basics - Anfänger-Themen 21
O Erklärung für Pattern Java Basics - Anfänger-Themen 5
U Java Pattern Regex Java Basics - Anfänger-Themen 9
0 Probleme mit Pattern und Matcher Java Basics - Anfänger-Themen 5
K Observer Pattern notifyObservers Java Basics - Anfänger-Themen 9
S geeignetes Such Pattern Java Basics - Anfänger-Themen 6
J Zugriff mit Visitor Pattern auf eigen erstellte verk. Liste Java Basics - Anfänger-Themen 3
J Visitor Pattern Java Basics - Anfänger-Themen 4
W Observer-Pattern Java Basics - Anfänger-Themen 3
M Singleton Pattern Java Basics - Anfänger-Themen 35
J Singleton Pattern Java Basics - Anfänger-Themen 5
J Ant pattern Erklaerung Java Basics - Anfänger-Themen 4
G Aufbau MVC-Pattern Java Basics - Anfänger-Themen 6
M Pattern Matching Java Basics - Anfänger-Themen 2
S Singleton Pattern passend hierfür? Java Basics - Anfänger-Themen 60
M Factory Pattern Ansatz falsch? Java Basics - Anfänger-Themen 6
Y Hilfe bei Pattern-Regexp Java Basics - Anfänger-Themen 5
U pattern Java Basics - Anfänger-Themen 2
A Pattern.matches(); Java Basics - Anfänger-Themen 14
A Problem mit Obser-Pattern Java Basics - Anfänger-Themen 2
P pattern/match Java Basics - Anfänger-Themen 2
K Probleme mit RegEx (Pattern und Matcher) Java Basics - Anfänger-Themen 2
K Regex Pattern Java Basics - Anfänger-Themen 4
G Vorteile Reflection bezüglich MVC-Pattern Java Basics - Anfänger-Themen 9
F regex pattern problem Java Basics - Anfänger-Themen 4
S Regex Pattern Problem Java Basics - Anfänger-Themen 2
G Singleton Pattern Java Basics - Anfänger-Themen 7
F Pattern und Matcher Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben