Regular Expression

H

Helm1010

Gast
Hallo Zusammen!

Bin gerade am verzweifeln mit den Regular Expressions.
Folgendes:

ich bekommen einen string (s1) mit einem Umsatz - Text darin enthalten.
Aus diesem Text entferne ich die leerzeichen.
Danach hol ich mir mittel RegExp eine spezielle Nr (Depotnummer) heraus (immer 11 stellen nach dem Schlüsselwort "Depot")
Konvertiere dich danach in einen BigDecimal Typ.

Java:
String s1 = xxx.getUmsatzText();
String depotNr = s1.replaceAll(".*Depot(\\d{11}).*", "$1"); 
...
BigDecimal depot= BigDecimalUtil.convert(depotNr);

Jetzt können aber folgende UmsatzTexte daherkommen:
"VerkaufDepot3283-001482,HermannSees" => Fehler
"AblageDepot3283rr2Kobo" => Fehler
"KaufausDepot265841002Hallil" => Fehler

Ich hab mir überlegt, die RegExp so anzu passen dass
-> die elf Zeichen nach dem Schlüsselwort "Depot" Zahlen sein müssen (erst dann "true" zurückliefern)
-> falls ein anderes Zeichen oder nach Depot keine elfstellige Zahl vorkommt soll "false" retuniert werden...

Kann mir da jemand helfen, meine RegExp so anzupassen?

Lg
 

fifo

Mitglied
Ich würde hier mit einem Matcher arbeiten.
Java:
Pattern pattern = Pattern.compile(".*Depot[\\d]{11}.*");
boolean isDepotNumberValid = pattern.matcher(fileName).find();
 
H

Helm1010

Gast
hy, danke für die Antwort.

Kenn mich mit dem Pattern Teil leider nicht aus, kann ich einfach meinen String depotNr hier anstatt FileName einsetzen ?
 
H

Helm1010

Gast
ok thx

btw: Pattern.compile(".*Depot[\\d]{11}.*");

=> d.h. liefert nur true, wenn nach "Depot" 11 Zahlen folgen; sollte ein anderes zeichen drinnen stehen oder die Zahl zu kurz sein oder die Zahl zu kurz u mit Sonderzeichen aufgefüllt sein dann liefert das Teil False - stimmt das so?

;)
 
H

Helm1010

Gast
ok, was ich noch fragen wollte ist, ob man das ganze auch so umgestalten kann, das wenn "Depot" klein bzw großgeschrieben auch true zruückgeliefert werden kann.
bzw. wenn mehr als eine elfstellige Zahle daherkommt, das ganze false zu retunieren. ist das möglich?

ja verwende eclipse, werd ich mir mal anschaun das plugin

danke
 
H

Helm1010

Gast
Gibt es eine möglichkeit das Ergebnis aus diesem Pattern auszugeben über System.out.println(..)?

=> "AblageDepot3283678200Kobo" => erg: 3283678200 ?
 

fifo

Mitglied
Mit dem Flag Pattern.CASE_INSENSITIVE wird die Groß- bzw. Kleinschreibung ignoriert.

[Java]Pattern.compile(".*Depot[\\d]{11}.*",
Pattern.CASE_INSENSITIVE)
[/Java]

Wenn du immer die DepotNr ausgeben willst, auch wenn sie nicht 11 Zahlen lang ist, würde ich die Zahlen nach Depot auschneiden. Diese dann auf die Länge 11 Prüfen und dann ggf. eine Fehlermeldung ausgeben.
 

faetzminator

Gesperrter Benutzer
Geht auch ganz gut ohne manuelles "basteln":
Java:
Pattern p = Pattern.compile("Depot(\\d{11})", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(input);
if (m.find()) {
    yourDepotNumber = p.group(1);
}
 

fifo

Mitglied
Das Funktioiert aber nur, wenn der Ausdruck korrekt ist. Ich habe das so verstanden, dass die Nummer auch ausgegeben werden soll, wenn sie nicht genau 11 Zahlen hat.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Regular Expression Allgemeine Java-Themen 16
M Regular expression Allgemeine Java-Themen 5
B Regular Expression und Matcher Allgemeine Java-Themen 3
MrMilti Gruppenreferenz in einer Regular Expression Allgemeine Java-Themen 3
S Java Regular Expression Allgemeine Java-Themen 2
G Parameterauswertung mit regular Expression Allgemeine Java-Themen 3
M Java Regular Expression für Mathe-String (= 2+4*3+2) Allgemeine Java-Themen 7
G Regular Expression Allgemeine Java-Themen 8
D Regular Expression Mit Punkt und Zahl Allgemeine Java-Themen 4
T Regular Expression mit n Gruppen Allgemeine Java-Themen 6
M Regular Expression Allgemeine Java-Themen 2
R Regular expression für '.' Allgemeine Java-Themen 7
M Regular Expression - verschiedene Ausdrücke testen (grep | ) Allgemeine Java-Themen 5
H Regular Expressions: beste Methode? Allgemeine Java-Themen 5
S Java Regular Expressions Allgemeine Java-Themen 2
S Regular Expressions in Java Allgemeine Java-Themen 3
MQue Regular Expr Allgemeine Java-Themen 15
G Regular expressions Allgemeine Java-Themen 4
M Mal wieder . Regular Expressions Allgemeine Java-Themen 2
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
RalleYTN Expression Crawling Allgemeine Java-Themen 5
D Variablen C Expression Validator Allgemeine Java-Themen 7
J Expression Language für mathematische Ausdrücke Allgemeine Java-Themen 8
S Syntax Error, insert "AssignmentOperator Expression&amp Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben