G
Guest
Gast
Hallo,
ich würde gerne Reguläre Ausdrücke in Java verwenden habe jedoch noch das eine oder andere Problem damit. Ich kenne die regex bisher nur aus Perl. Primär sind mir zwei Punkte nicht ganz klar geworden.
Punkt 1:
Gegeben sei folgender String, bei dem es sich um die erste zeile einer tab-delim. Tabelle handeln könnte:
"Kundenname KNr Datum Sonstiges"
getrennt seien die Wörter mit "\t".
Ich würde gerne prüfen ob Kundenname und Datum als Spaltennamen existieren und wenn dem so ist, DANN würde ich gerne den Spaltenindex ausgeben lassen. Mit
kann ich scheinbar prüfen, ob die beiden Spaltennamen existieren. Aber wie prüfe ich nun die Indices der entsprechenden Spalten? Muss ich die zeile über ("\t") splitten und anschließend jeden einzelnen Eintrag überprüfen, ob er auf eines der beiden Muster passt? Oder geht das irgendwie einfacher über die Gruppierung?
Punkt 2:
Gegeben sei nun ein String, den ich gerne in 4 Teile splitten möchte allerdings anhand eines gewissen Musters:
MüllerMeyer:2001-2005 (aktiv)
Wie greife ich denn nun eigentlich auf die einzelnen vier identifizierten Substrings zu? Mit
???
ich würde gerne Reguläre Ausdrücke in Java verwenden habe jedoch noch das eine oder andere Problem damit. Ich kenne die regex bisher nur aus Perl. Primär sind mir zwei Punkte nicht ganz klar geworden.
Punkt 1:
Gegeben sei folgender String, bei dem es sich um die erste zeile einer tab-delim. Tabelle handeln könnte:
"Kundenname KNr Datum Sonstiges"
getrennt seien die Wörter mit "\t".
Ich würde gerne prüfen ob Kundenname und Datum als Spaltennamen existieren und wenn dem so ist, DANN würde ich gerne den Spaltenindex ausgeben lassen. Mit
Code:
String REGEX = "(Kundenname)(?:\w\t)(Datum)";
String line = "Kundenname KNr Datum Sonstiges";
Pattern p = Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(line);
return m.matches()
Punkt 2:
Gegeben sei nun ein String, den ich gerne in 4 Teile splitten möchte allerdings anhand eines gewissen Musters:
MüllerMeyer:2001-2005 (aktiv)
Code:
String REGEX = "(\w):(\d+)-(\d)+\t\((aktiv)\)";
String line = "MüllerMeyer:2001-2005 (aktiv)";
Pattern p = Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(line);
Wie greife ich denn nun eigentlich auf die einzelnen vier identifizierten Substrings zu? Mit
Code:
m.find()