Reguläre Ausdrücke
-
Ich habe Strings mit folgendem Aufbau:
zzz_alphanum1 - alphanum2.erweiterungzzz können beliebige Ziffern sein, immer drei Stück,
_ ist der underscore
' - ' leerzeichen + minus + leerzeichen
alphanum1: ein beliebig langer alphanumerischer String
alphanum2: dito
.erweiterung: Punkt mit Zeichenkette. Wird nicht benötigtAus dem String soll nun von zzz_ und " - " entfernt werden,
alphanum1 und alphanum2 sollen in jeweils neuen Strings
abgelegt werden.Beim Wälzen der Doku fand ich in der Stringklasse die Methode:
String [] split(regexp)Jetzt habe ich es geschafft zzz_ zu loeschen:
split("[0-9][0-9][0-9]_");Wie kann ich denn in EINEM Aufruf von split noch
den Rest erledigen?Warum bekomme ich beim Aufruf von split("\d\d\d_") eine
Fehlermeldung wegen den Backslash? Laut Doku ist
\d das selbe wie [0-9]
-
nicht getestet:
Pattern regExp = Pattern.compile("\\d\\d\\d_([^-]*)-([^.]*)"); Matcher m = regExp.matcher(str); // str ist Dein String if(m.find()){ String alphanum1 = m.group(1); String alphanum2 = m.group(2); }
-
Parry schrieb:
nicht getestet:
Da fehlen die zwei Space vor und nach dem "-" als " - " so
funktioniert es:Pattern.compile("\\d\\d\\d_([^-]*) - ([^.]*)");
Man hätte es aber auch so lassen können und die zwei alphanumeric
anschliessend trimmen.Danke für den Regexp, jetzt steig ich so langsam durch.
Muss mal schauen ob es bei Sun ein Tut für die RegExp gibt,
die sind echt nützlich, wenn man die beherrscht.
-
Muss mal schauen ob es bei Sun ein Tut für die RegExp gibt,
die sind echt nützlich, wenn man die beherrscht.Falls es noch jemanden interessiert:
http://java.sun.com/docs/books/tutorial/extra/regex/index.html