Reguläre Ausdrücke

sicLotus

Bekanntes Mitglied
Hallo, ich hab folgendes Problem:

Ich möchte in meinem Textfeld folgende Strings erlauben:
Die Zahlen 0-9
Den Buchstaben X
und das MetaZeichen *

Rein theoretisch klappt das schon ganz gut mit dem folgendes regex: [0-9X/*]+
Allerdings wollte ich jetzt sagen, das es nur maximal 1 * in dem Textfeld geben darf (an welcher Stelle das ist, wäre egal)

Also erlaubt wären quasi:
1111*1111
*1111111
1*1111
11111111*
etc..

Ich weiß, das das ganze mit dem [/*]? gehen würde, jetzt ist aber das Problem mit der Position vorhanden... kann man das irgendwie umgehen?
 

tfa

Top Contributor
Wie wär's mit
Code:
[0-9X]*\\*?[0-9X]*
?
Das matcht allerdings auch ein einzelnes "*"
 

sicLotus

Bekanntes Mitglied
hm.. so ganz versteh ich das nicht, meine vermutung wäre das [0-9X]* mehr oder weniger dasselbe wie mit dem + ist, nur das auch "gar kein" zeichen erlaubt ist?
aber warum gibts dann 2 slashs (bzw. warum gibts backslashs und keine slashs?? )
oder irr ich mich da jetzt gerade?
 

tfa

Top Contributor
meine vermutung wäre das [0-9X]* mehr oder weniger dasselbe wie mit dem + ist, nur das auch "gar kein" zeichen erlaubt ist?
Richtig.
aber warum gibts dann 2 slashs (bzw. warum gibts backslashs und keine slashs?? )
Du musst den * ausmaskieren, da er eine besondere Bedeutung in RegEx hat. Das macht mit mit einem \, aber da auch der in Strings eine besondere Bedeutung hat, muss man auch den maskieren, also \\.

Eine RegEx, die ein einzelnen * nicht matcht, könnte man übrigens so machen
Code:
"[0-9X]+\\*?[0-9X]*|\\*?[0-9X]+"
.
 

sicLotus

Bekanntes Mitglied
Oh? Man kann sogar logische Ausdrücke damit kombinieren? Das | soll doch nen bitweises OR darstellen oder?

Das mit den \\ hab ich jetzt verstanden, vielen dank :)

ps.:
kann man mit den ausdrücken eventuell auch ne länge matchen? also das ich nicht sage [0-9]* sondern, [0-9]x10 oder so xD
also das die länge immer 10 betragen muss
 
Zuletzt bearbeitet:

tfa

Top Contributor
Ja, das | ist ein Oder (bitweise würd ich es jetzt aber nicht nennen).
Mehr Infos findest du in den API-Docs: Pattern (Java Platform SE 6)

Länge matchen geht so:

Code:
[0-9]{10} genau 10 Zeichen
[0-9]{5,} mindestens 5 Zeichen
[0-9]{5,10} mindestens 5, aber nicht mehr als 10 Zeichen
 

sicLotus

Bekanntes Mitglied
sorry das ich jetzt nochmal frage... aber wie könnte ich jetzt deinen regex koppeln mit {10} ?
kann man darum nochmal [] schreiben?
 

Michael...

Top Contributor
Was verstehst Du unter Koppeln? Mit [ und ] wird nur eine Zeichenauswahl definiert. Man kann mit ( und ) Ausdrücke gruppieren - falls es das ist was Du meinst.
Zum Nachschlagen: Wikipedia
 

sicLotus

Bekanntes Mitglied
Naja am Anfang gings mir nur darum, abzufangen das lediglich 1 * vorhanden ist, das funktioniert jetzt ja auch... aber es wäre perfekt, wenn jetzt auch "gleichzeitig" die Länge von max. 10 abgefangen werden könnte..

also quasi das was tfa geschrieben hat, aber halt so.. das die zeichen die benutzt werden die länge von 10 nicht überschreiten..
wenn das nicht geht, dann bau ich einfach ne if anweisung drum herum und arbeite mit length.. aber es wäre interessant geworden, wenn regex auch damit umgehen könnten..
 

tfa

Top Contributor
Wenn die ganze Zeichenkette höchstens Länge 10 haben soll, wird es etwas komplizierter. Dann müsste man alle möglichen *-Positionen mit | verodern. Das wird eine lange RegEx. Die Lösung, einfach die Länge abzufragen, ist sicherlich besser.
 

sicLotus

Bekanntes Mitglied
Alles klar, zu kompliziert muss es ja auch nicht sein :)
ich hab das bisher so gelöst:

JTextField a = new JTextField;

if (a.getText().matches("REGEX")) .....

Meine Frage, gibts jetzt auch die Möglichkeit ein JFormattedTextField zu benutzen und den regex an dieses zu übergeben?
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

Alles klar, zu kompliziert muss es ja auch nicht sein :)
ich hab das bisher so gelöst:

JTextField a = new JTextField;

if (a.getText().matches("REGEX")) .....

Meine Frage, gibts jetzt auch die Möglichkeit ein JFormattedTextField zu benutzen und den regex an dieses zu übergeben?

vlt. so :
Java:
JFormattedTextField b = new JFormattedTextField;

if( b.getText().matches("REGEX") ) .....
???:L

gruß
Klaus
 

sicLotus

Bekanntes Mitglied
ja gut, aber ich meinte eigentlich, ob sich das textfeld dann auch so verhält wie die anderen formatted masken und dann den ausdruck automatisch ändert oder sowas halt..

beispiel:
bei dem datumsformatter macht er z.B. aus 3.3.2010 -> 03.03.2010
 

VfL_Freak

Top Contributor
Moin,

ja gut, aber ich meinte eigentlich, ob sich das textfeld dann auch so verhält wie die anderen formatted masken und dann den ausdruck automatisch ändert oder sowas halt..

beispiel:
bei dem datumsformatter macht er z.B. aus 3.3.2010 -> 03.03.2010

ich denke, dass liegt daran, wie Du das Feld deklarierst ....
Verwendest Du eine "MaskFormatter" ?

Schau mal hier :
JFormattedTextField

Gruß
Klaus
 

sicLotus

Bekanntes Mitglied
Zur Zeit benutze ich "noch" gar nichts... ich frage nur ob das geht.. es wäre quasi gut nen MaskFormatter zu nehmen, der sich aber nicht an den vorgegebenen Platzhaltern orientiert, sondern an meinem regex... aber ich glaube sowas geht nicht.. :/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
K FYI: Reguläre Ausdrücke nutzen ja/nein Java Basics - Anfänger-Themen 2
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
P Reguläre Ausdrücke und Korrektheit Java Basics - Anfänger-Themen 2
0 Reguläre Ausdrücke bzw. Zahlenformat im String Java Basics - Anfänger-Themen 7
G Reguläre Ausdrücke Zeichenketten Java Basics - Anfänger-Themen 12
C Klassen Reguläre Ausdrücke auf Gleichheit prüfen Java Basics - Anfänger-Themen 5
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
C Reguläre-Ausdrücke Java Basics - Anfänger-Themen 5
J reguläre Ausdrücke Java Basics - Anfänger-Themen 1
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
H Erste Schritte Von jpg zu jpeg // reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
C Reguläre Ausdrücke: string.matches() und gefangene Gruppen Java Basics - Anfänger-Themen 12
S Reguläre Ausdrücke richtig einsetzten Java Basics - Anfänger-Themen 5
T Reguläre Ausdrücke Java Basics - Anfänger-Themen 18
0 Reguläre Ausdrücke und Funktionen Java Basics - Anfänger-Themen 2
D Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
A Reguläre Ausdrücke Frage Java Basics - Anfänger-Themen 3
E Reguläre Ausdrücke mit sehr variablen Eigenschaften Java Basics - Anfänger-Themen 2
N Reguläre Ausdrücke - bekomme Suchkriterium nicht hin Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke in Java Java Basics - Anfänger-Themen 2
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
S Strings und reguläre Ausdrücke Java Basics - Anfänger-Themen 2
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 4
S Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
M Reguläre ausdrücke? Java Basics - Anfänger-Themen 8
D Reguläre Ausdrücke: Anzahl Wiederholungen als Variable? Java Basics - Anfänger-Themen 3
A Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
M Reguläre Ausdrücke - maskieren von Zeichen? Java Basics - Anfänger-Themen 9
M Reguläre Ausdrücke und Ausgabe Java Basics - Anfänger-Themen 10
K Reguläre Ausdrücke - Gefundene Tokens direkt ermitteln Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke: Zeichenfolge ausschließen Java Basics - Anfänger-Themen 2
G Reguläre Ausdrücke Java Basics - Anfänger-Themen 13
L java und reguläre ausdrücke Java Basics - Anfänger-Themen 4
G Reguläre Ausdrücke zum Filtern von logfiles Java Basics - Anfänger-Themen 2
T Reguläre Ausdrücke? Java Basics - Anfänger-Themen 3
E Reguläre Ausdrücke Java Basics - Anfänger-Themen 17
O reguläre Ausdrücke bei java.util.regex.Pattern Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke der Pfade unter Windows und Unix Java Basics - Anfänger-Themen 3
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
G Problem reguläre Ausdrücke Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke: Inhalt zwischen zwei Schlüsselwörtern Java Basics - Anfänger-Themen 2
A Reguläre Ausdrücke: Problem mit Backslash Java Basics - Anfänger-Themen 3
W Reguläre Ausdruck Java Basics - Anfänger-Themen 6
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
S reguläre Audrücke verbinden Java Basics - Anfänger-Themen 18
N reguläre ausdruech und exception Probleme Java Basics - Anfänger-Themen 7
R Reguläre Ausdruck definieren Java Basics - Anfänger-Themen 3
S Prüfungsvorbereitung Januar ( Thema Ausdrücke ) Java Basics - Anfänger-Themen 14
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
C Boolsche Ausdrücke Java Basics - Anfänger-Themen 3
A Schleifen und Boolsche Ausdrücke Java Basics - Anfänger-Themen 42
G Java Lambda Ausdrücke Java Basics - Anfänger-Themen 19
A Lambda-Ausdrücke Java Basics - Anfänger-Themen 6
G Lambda Ausdrücke Java Basics - Anfänger-Themen 2
O Lambda Ausdrücke in einem Comparator Java Basics - Anfänger-Themen 4
B Erste Schritte Boolesche Ausdrücke & Gesetze Java Basics - Anfänger-Themen 3
S Lambda Ausdrücke Streams Java Basics - Anfänger-Themen 6
D Variablen Ausdrücke Java Basics - Anfänger-Themen 6
M Lambda - Ausdrücke verstehen Java Basics - Anfänger-Themen 2
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
F Methoden Lambda Ausdrücke Methodensignatur Java Basics - Anfänger-Themen 6
P Ausdrücke berechnen Java Basics - Anfänger-Themen 2
J Java 8 Lamda ausdrücke Java Basics - Anfänger-Themen 9
C Lambda Ausdrücke Java Basics - Anfänger-Themen 1
TheSorm Java 8 Lambda-Ausdrücke Java Basics - Anfänger-Themen 9
S Anweisungen Ausdrücke Java Basics - Anfänger-Themen 7
J Regex Ausdrücke im Array - Wieso werden sie nicht erkannt? Java Basics - Anfänger-Themen 4
K Ausdrücke auswerten Java Basics - Anfänger-Themen 8
C Boolsche Ausdrücke - Wo ist mein Fehler? Java Basics - Anfänger-Themen 14
M Boolsche Ausdrücke minimieren Java Basics - Anfänger-Themen 13
S arithmetische Ausdrücke prüfen Java Basics - Anfänger-Themen 11
S Datentypen Operatoren und Ausdrücke (formel richtig rechnen) Java Basics - Anfänger-Themen 8
T Ausdrucksparser für Mathematische Ausdrücke Java Basics - Anfänger-Themen 15
N Ausdrücke Java Basics - Anfänger-Themen 6
W Suche nach strings zwischen eckigen Klammern mittels regulärer Ausdrücke Java Basics - Anfänger-Themen 3
C arithmetische Ausdrücke Java Basics - Anfänger-Themen 7
M regüläre Ausdrücke, die String - Variablen und Expression Java Basics - Anfänger-Themen 5
M Ausdrücke -> Werte Java Basics - Anfänger-Themen 6
A mehrere Ausdrücke in for schleife vergleichen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben