Bei split die regex erhalten

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ich habe einen String, in dem Uhrzeiten (und dazwischen alles mögliche) stehen und möchte ein String-Array mit den Uhrzeiten jeweils am Anfang. Wenn ich text.split("\\d\\d:\\d\\d") nehme, dann wäre ja alles richtig aufgeteilt, aber gerade die Uhrzeiten fehlen. Da muss es doch eine Möglichkeit geben, dass gesplittet wird und die regex trotzdem erhalten bleibt.
 

Wildcard

Top Contributor
Besser du nimmst Pattern und Matcher direkt und greifst auf die Capturing Groups des Matchers zu.
 
G

Guest

Gast
Ich verstehe nicht wie man das am besten realisiert. Haben will ich jeweils die Uhrzeit mit allem was danach kommt bis zur nächsten Uhrzeit, aber ohne diese noch dabei zu haben. Wie finde ich bei Matcher das Ende ohne dass es selbst zum Matcher gehört? Ich habe jetzt:
Code:
Pattern pattern = Pattern.compile("\n([012]\\d)[:\\.]([012345]\\d) (.+?)\n(.*?)($|([012]\\d)[:\\.]([012345]\\d))", Pattern.DOTALL);
matcher.group(3) und matcher.group(4) enthalten den Teil zwischen den Uhrzeiten. Aber im nächsten Matcher wird die nächste Uhrzeit nicht mehr gefunden, weil ich sie ja schon verwendet habe um das Ende des vorherigen Matchers zu finden.
 
G

Guest

Gast
Weiß niemand eine Antwort oder scheint meine Frage unsinnig zu sein? Falls letzteres: sie ist von mir ernst gemeint.
Mir würde ein weiterführender Link reichen. Ich finde nichts dazu, verwende vielleicht die falschen Suchbegriffe.
 

hansz

Aktives Mitglied
Hallo,

hab hier mal zwei Grundlagen-Listings zu regulären Ausdrücken:

Code:
/* MatcherExample2.java */

import java.util.regex.*;

public class MatcherExample2 {
  
  public static void main(String args[]) {
    
    String regex = "\\bmatch\\b";
    String input = "match matcher match match matching";
    StringBuffer output = new StringBuffer();
    int count = 0;
    
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(input);
    
    while (m.find()) {
      count++;
      int start = m.start();
      int end = m.end();
      System.out.println(count + ". Match:");
      System.out.println("  begin: " + start + ", end: " + end); 
      output.append(input.substring(start, end) + " ");
    }
    
    System.out.println("input: " + input);
    System.out.println("output: " + output.toString());
  }
}


Das zweite Listing vermittelt Grundlagen über Capturing Groups:


Code:
/* CapturingGroupExample.java */

import java.util.regex.*;

public class CapturingGroupExample {
  
  public static void main(String args[]) {
    
    String regex = "(ab*)(cd(ef)+)";
    String input = "acdefef";
    
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(input);
    
    int gc = m.groupCount();
    System.out.println("Group count: " + gc);
    
    if (m.find()) {
      for (int i = 0; i < gc; i++) {
        System.out.println("Group " + i + ":");
        System.out.println("  Match: " + m.group(i));
        System.out.println("  Start: " + m.start(i) + ", End: " + m.end(i));
      }
    }
  }
}

und hat die Ausgabe:

Group count: 3
Group 0:
Match: acdefef
Start: 0, End: 7
Group 1:
Match: a
Start: 0, End: 1
Group 2:
Match: cdefef
Start: 1, End: 7


Ansonsten können auch die beiden Links der JDK-Doku helfen (Klasse Pattern und Matcher):

java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html
java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Matcher.html


Gruß,
hansz :)
 
G

Guest

Gast
Danke. Der Trick ist also mit matcher.end() und matcher.start() jeweils die Lücke zwischen dem letzten und dem nächsten Matcher zu finden. Nicht gerade einfach im Vergleich zu text.split() wenn man die Regex nicht braucht, aber Hauptsache es klappt endlich :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
OnDemand Regex oder Split? Java Basics - Anfänger-Themen 5
I String.split regex Frage Java Basics - Anfänger-Themen 2
Helgon Regex Split Java Basics - Anfänger-Themen 2
M Regex mit Split Java Basics - Anfänger-Themen 3
B String ordentlich trennen (regex, split())? Java Basics - Anfänger-Themen 11
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
JavaClara Fehlermeldung bei split-Methode Java Basics - Anfänger-Themen 12
S String split Java Basics - Anfänger-Themen 12
Dimax String Split Java Basics - Anfänger-Themen 2
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
D Kleine Probleme mit Split-Befehlen Java Basics - Anfänger-Themen 5
9 Error bei .split() Java Basics - Anfänger-Themen 2
S Methoden String: split Java Basics - Anfänger-Themen 5
T split innerhalb Klammern ignorieren? Java Basics - Anfänger-Themen 6
MR._FIRE_Flower String.split("(") geht nicht Java Basics - Anfänger-Themen 4
D Input/Output Split am Zeichen | Java Basics - Anfänger-Themen 2
W split()-Methode Java Basics - Anfänger-Themen 4
C Gleichung String Split Java Basics - Anfänger-Themen 6
agent47 Pattern split Java Basics - Anfänger-Themen 2
D BufferedReader/InputStreamReader/Split Java Basics - Anfänger-Themen 2
G String.split(".") Java Basics - Anfänger-Themen 3
F Methoden split() - Mehrere Zeichen Java Basics - Anfänger-Themen 5
R Split ab bestimmter Stelle Java Basics - Anfänger-Themen 9
A String Split Java Basics - Anfänger-Themen 4
K Split und ArrayList Java Basics - Anfänger-Themen 3
JAVAnnik split Methode Java Basics - Anfänger-Themen 1
K How to split my String Java Basics - Anfänger-Themen 2
L String array mit split füllen Java Basics - Anfänger-Themen 14
N split nullpoiner exception Java Basics - Anfänger-Themen 6
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
P CSV Datei in String Array -> Split -> New Array Java Basics - Anfänger-Themen 2
vandread String.split("\\") führt zu Error?! Java Basics - Anfänger-Themen 8
N Explode in Java (split). Komme nicht weiter. Java Basics - Anfänger-Themen 2
B Split, Exception - Obwohl es gehen MUSS Java Basics - Anfänger-Themen 3
S Probleme mit split Java Basics - Anfänger-Themen 5
N Probleme mit .split("\\.") Java Basics - Anfänger-Themen 6
N String [][] mit .split Java Basics - Anfänger-Themen 13
B Array fehler bei string split Java Basics - Anfänger-Themen 4
L Methoden String.split nach Absätzen? Java Basics - Anfänger-Themen 8
S Split String für | Java Basics - Anfänger-Themen 2
K split() - Delimiter Java Basics - Anfänger-Themen 4
F Split Array auffüllen Java Basics - Anfänger-Themen 8
S Hexstring contains & split Java Basics - Anfänger-Themen 2
R String Delimiter (Split) einlesen Java Basics - Anfänger-Themen 9
R .split() - Problem Java Basics - Anfänger-Themen 5
0 String split und replace geht nicht Java Basics - Anfänger-Themen 17
T Syntax für .split mit Klammern Java Basics - Anfänger-Themen 2
T String Split? Java Basics - Anfänger-Themen 10
F String Split Problem mit "|" Java Basics - Anfänger-Themen 3
D String.split(...) Java Basics - Anfänger-Themen 4
Z split tut nicht, was es soll Java Basics - Anfänger-Themen 3
C Split Fehler? Java Basics - Anfänger-Themen 7
D BufferedWriter, split() und Zeilenumbrüche Java Basics - Anfänger-Themen 5
K Java Split mehrere Zeilen Java Basics - Anfänger-Themen 4
D BufferedReader und .split() Java Basics - Anfänger-Themen 3
Y split()-Methoden problem Java Basics - Anfänger-Themen 21
J String split-Funktion und Integer Java Basics - Anfänger-Themen 13
X nach split leerzeichen weg Java Basics - Anfänger-Themen 4
S String - Gegenteil von Split? Java Basics - Anfänger-Themen 2
L Java: split und trim Java Basics - Anfänger-Themen 6
D String.split(".") geht nicht? Java Basics - Anfänger-Themen 3
M split arbeitet nicht richtig Java Basics - Anfänger-Themen 2
D Split Java Basics - Anfänger-Themen 11
Eldorado Fehler bei String.split Java Basics - Anfänger-Themen 4
S String Split ohne Zeichen abzuschneiden Java Basics - Anfänger-Themen 7
MQue split()- Methode Java Basics - Anfänger-Themen 10
B Split() Funktion Java Basics - Anfänger-Themen 5
M String splitten mit split() Java Basics - Anfänger-Themen 4
T .split(";") nicht gleich große arrays werden erzeu Java Basics - Anfänger-Themen 2
S String split array.length Problem Java Basics - Anfänger-Themen 3
J Problem mit Split und String Java Basics - Anfänger-Themen 3
G Probleme mit Split Java Basics - Anfänger-Themen 5
M String.split() und StringTokenizer Java Basics - Anfänger-Themen 2
ARadauer String.split -> unterschiedliche längen Java Basics - Anfänger-Themen 2
H Split läuft nicht wie ich will Java Basics - Anfänger-Themen 4
I <String>.split()? Java Basics - Anfänger-Themen 2
I String, Split, match, wo liegt mein Fehler ? Java Basics - Anfänger-Themen 4
S Worthäufigkeiten zählen nach String.split() Java Basics - Anfänger-Themen 5
F String split-Methode Java Basics - Anfänger-Themen 12
M split() mit anzahl zeichen Java Basics - Anfänger-Themen 2
R split ist komisch Java Basics - Anfänger-Themen 2
P Probleme mit split Java Basics - Anfänger-Themen 4
Q String split bei "" Java Basics - Anfänger-Themen 4
G Problem mit String.split(""); Java Basics - Anfänger-Themen 2
M Problem Dateiarbeit: split und trim Java Basics - Anfänger-Themen 4
C Collection in Verbindung mit String.split speicherlastig Java Basics - Anfänger-Themen 20
C String.split("") einzelne Positionen abfragen Java Basics - Anfänger-Themen 10
D String mit split teilen und leere Felder behalten Java Basics - Anfänger-Themen 4
O String mit split zerlegen Java Basics - Anfänger-Themen 6
G Split Operation: ein oder mehrere Leerzeichen Java Basics - Anfänger-Themen 7
E Was ist bei split() los? Java Basics - Anfänger-Themen 2
F Split und Satzzeichen Java Basics - Anfänger-Themen 2
M Split nur mit einem Kriterium? Java Basics - Anfänger-Themen 4
G Split String Java Basics - Anfänger-Themen 2
G BufferedReader - split-Methode Java Basics - Anfänger-Themen 6
G Habe bei String kein split()? Java Basics - Anfänger-Themen 7
B try & catch Problem mit Exception bzw String.split() Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben