Frage zu RegExp

  • Themenstarter Themenstarter asroger
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
A

asroger

Gast
Hallo zusammen !

Ich muss eine Vordrucknummer auf folgenden Formalismus prüfen:

Feld mit 1 - 7 Stellen als "Kann-Feld"
wenn jedoch eine Eingabe erfolgt dann
Stelle 1 - 5 = numerisch und falls vorhanden
Stelle 6 - 7 = alphanumerisch

Ich prüfe also wenn Eingabe erfolgte:

Code:
Pattern.compile("[0-9]{5}[a-zA-Z]{0,2}").matcher(eingabe).matches()
Nun meine Frage :

Kann ich das ganze schon während der Eingabe prüfen

Code:
public class MeinDocument extends PlainDocument {

	private Pattern patt = null;
	private Matcher matcher = null;
	String test = null;

	public BKNDocument(String lRegExp) {
		patt = Pattern.compile(lRegExp);
	}

	public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
		
		test = super.getText(0,super.getLength()) + str;
		
		matcher = patt.matcher(test);
		if (matcher.matches())
			super.insertString(offs, str, a);
		else
			BknPopups.meldung("Eingabe war nicht zulässig und wurde entfernt !");
	}
}

Doch wie müsste dann die RegExp aussehen ??

Während der Eingabe soll z. B. 123 als bis dahin zulässig erkannt
und 1A abgewiesen werden.

Danke

asroger
 
hm, mit einem regex schwierig
Code:
if(laenge>0){
   switch(laenge){

     case 4: // [0-9]{4}
...
     case 6: // [0-9]{5}[A-Za-z0-9]{1}
...
   }
}
ggf. könntest du dir die Regexe auch vom Programm zusammenstellen lassen, aber das ist dann etwas verwirrend
 
ach so

Code:
([0-9]{1})|([0-9]{2}) ... |([0-9]{5}[A-Za-z0-9]{2})

ginge auch 🙂
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben