Hallo zusammen,
ich möchte mittels Java einen beliebigen String gegen einen Regulären Ausdruck prüfen. Das besondere dabei ist, dass der String Platzhalter haben kann.
Beispiel:
Nehmen wir den Regulären Ausdruck, der eine Bankleitzahl beschreibt:
.
Der String "20010030" würde diesem RA zum Beispiel entsprechen.
Nun sollen aber auch die Platzhalter (? = 1 beliebiges "passendes" Zeichen / * = 0..n beliebige "passende" Zeichen) verwendet werden. Zum Beispiel möchte man formulieren, dass man alle Bankleitzahlen, die an der 4. Stelle eine 5 (sind dann alle Sparkassen) haben, meint: "???5????". Dabei ist das Zeichen ? als beliebiges passendes Zeichen zu verstehen.
Gibt es eine Möglichkeit mittels Java zu ermitteln, ob die Zeichenkette "???5????" dem obigen regulären Ausdruck entspricht?
Schwieriger wird das ganze vermutlich noch bei dem Platzhalter * für beliebig viele passende Zeichen. So dürfte die Zeichenkette "*5*" nicht dem obigen RA entsprechen, da ja nicht klar ist, dass vor der "5" drei und danach 4 Zeichen erwartet werden. Hingegen würde die Zeichenkette "*Hallo Welt*" dem RA
entsprechen.
Wenn jemand eine Idee hat wie man das in Java prüft, wäre ich für Hinweise dankbar. Vielleicht gibt es ja auch schon etwas Fertiges dafür?
ich möchte mittels Java einen beliebigen String gegen einen Regulären Ausdruck prüfen. Das besondere dabei ist, dass der String Platzhalter haben kann.
Beispiel:
Nehmen wir den Regulären Ausdruck, der eine Bankleitzahl beschreibt:
Code:
^[1-8][0-9]{2}[0-9]{5}$
Der String "20010030" würde diesem RA zum Beispiel entsprechen.
Nun sollen aber auch die Platzhalter (? = 1 beliebiges "passendes" Zeichen / * = 0..n beliebige "passende" Zeichen) verwendet werden. Zum Beispiel möchte man formulieren, dass man alle Bankleitzahlen, die an der 4. Stelle eine 5 (sind dann alle Sparkassen) haben, meint: "???5????". Dabei ist das Zeichen ? als beliebiges passendes Zeichen zu verstehen.
Gibt es eine Möglichkeit mittels Java zu ermitteln, ob die Zeichenkette "???5????" dem obigen regulären Ausdruck entspricht?
Schwieriger wird das ganze vermutlich noch bei dem Platzhalter * für beliebig viele passende Zeichen. So dürfte die Zeichenkette "*5*" nicht dem obigen RA entsprechen, da ja nicht klar ist, dass vor der "5" drei und danach 4 Zeichen erwartet werden. Hingegen würde die Zeichenkette "*Hallo Welt*" dem RA
Code:
(.)*Hallo Welt(.)*
Wenn jemand eine Idee hat wie man das in Java prüft, wäre ich für Hinweise dankbar. Vielleicht gibt es ja auch schon etwas Fertiges dafür?