RegEx

guguli

Bekanntes Mitglied
Hallo zusammen kann einer mir bei der Erstellung einer RegEx behilflich sein.

also die Länge soll entwerder 0 bis Maximal 12 stellig sein.
am Anfang soll [A-Z]{0,3} also entwerder keine Buchstabe oder Max. 3.
Dann soll ein "-" Vorkommen. Aber nur wenn am anfang die Buchstaben vorkommen, dann soll "-" vorkommen.
Also wenn AA dann muss AA- sein.
Nach "-" oder direkt am Anfang sollen [0-9] vorkommen.

die gesammte Konstruktion soll 12 Max 12 stellig sein.

Also erlaub sind:
123456789012
1234567890
12345
AA-123456789
AA-1
ABE-123

Nicht erlaub sind:
-
AA
AA-
-123
AAdd-12
ABD

Danke
 
K

kneitzel

Gast
Sowas kann man erst einmal geradelinig aufbauen, denn die einzelnen Fälle sind alle einfach:
- Bis zu 12 Zahlen: \d{1,12}
- [A-Z]-\d{1,10}
- [A-Z]{2}-\d{1,9}
- [A-Z]{3}-\d{1,8}

Und das kann man dann in ( ) setzen und mit | trennen, Natürlich in ^$ packen, damit der ganze String genommen wird so dies nicht schon von den Methoden forciert wird:
^(\d{1,12}|[A-Z]-\d{1,10}|[A-Z]{2}-\d{1,9}|[A-Z]{3}-\d{1,8})$

Generell könnte man es noch vereinfachen, wenn man die Längenbegrenzung vorab prüft, also sicher stellt, dass eh nur 12 Zeichen rein kommen:
^(\d{1,12}|[A-Z]{1,3}-\d{1,10})$
Damit wären halt auch bis zu 14 Zeichen valide - ein AAA-1234567890 wäre hier auch noch ok.

Das einfach einmal auf die Schnelle um ein einfachen, leicht zu verstehenden RegEx zu bieten. Der Weg, wie dies erstellt wurde, sollte auch einfach nachzuvollziehen sein ...

Edit: Beim editieren der alternativen Lösung war ein [ zuviel gelöscht worden ... Und Anmerkung: Kann manz.B. auch auf regex101.com schön mit spielen!
 

mrBrown

Super-Moderator
Mitarbeiter
^(([A-Z]{1,3}-)?\d+){1,12}$

Von "hinten" nach "vorn":
{1,12}: mindestens ein, Maximal 12 Zeichen
\d+: mindestens eine Zahl
(...)?: die vordere Gruppe ist optional
[A-Z]{1,3}-: Wenn vorhanden, muss es 1-3 aus A-Z und in jedem Fall ein - sein.

EDIT: Sorry, ist Unsinn was ich geschrieben hab -.-
 
K

kneitzel

Gast
^(([A-Z]{1,3}-)?\d+){1,12}$

{1,12}: mindestens ein, Maximal 12 Zeichen

EDIT: Sorry, ist Unsinn was ich geschrieben hab -.-

Nur zum Verständnis noch eine kurze Erläuterung: Das {1,12} bezieht sich auf die Gruppe davor und nicht auf einzelne Zeichen, d.h. das, was in der Gruppe definiert wurde, dürfte 1 bis 12 mal vorkommen.
 

ocsme

Top Contributor
Gutes Thema. Ich hab mir die RegEx auch schon angeschaut doch leider kein vernünftiges Tutorial dazu gefunden :-( Kennt jemand von euch eines?
 
K

kneitzel

Gast
Bücher, die ich nennen könnte:
"Java 9 Regular Expressions" von Anubhava Srivastava, Packt Verlag https://www.amazon.de/Java-Regular-Expressions-hands-back-references-ebook/dp/B06Y2XNYT5
"Reguläre Ausdrücke" von Jeffrey E. F. Friedl, O'Reilly Verlag https://www.amazon.de/Reguläre-Ausdrücke-Jeffrey-F-Friedl/dp/3897213494
"Java Regular Expressions" von Mehran Habibi, Apress Verlag https://www.amazon.de/Java-Regular-Expressions-java-util-regex-Experts/dp/1590591070

Aber das wären Bücher, die das als Hauptthema behandeln. Es ist oft auch mit einem Kapitel vertreten. Da wird es aber nur grob angeschnitten und es geht nicht in die Tiefe:
- Java ist auch eine Insel - das ist wohl das Werk, das fast immer genannt werden kann :)
- "Learning Java, 4th Edition" Patrieck Niemeyer / Daniel Leuck
- "Beginning Java 9 Fundamentals" Kishori Sharan; Apress
- ...

Es gibt extrem viele Bücher. Auch gerade zusammen mit awk, perl, ...

Wer aktiv viel lernen will / möchte, dem würde ich bei so Fragen auch durchaus eine Bücher Subscription empfehlen. Ich kenne / habe / hatte (Preise können nicht ganz stimmen - sind aus dem Kopf geschrieben):
- Packt Subscription 99 € / Jahr - Hat in erster Linie nur Packt Bücher / Videos (hat sich jetzt etwas verändert. Da ist jetzt noch etwas mehr dazu gekommen). Und sie bauen nach und nach weiter aus. Für unter 10€/Monat ist das aus meiner Sicht lukrativ.
- O'Reilly Learning (ehemals Safaribooksonline) 45€ / Monat: Extrem gute Auswahl über fast alle Bücher / Videos der Verlage. Gute Zusammenarbeit mit Autoren und aktiven Leuten, die dann auch Online Sessions anbieten. Das war genial, aber 45€ / Monat ist schon eine gute Hausnummer!

Darüber hinaus kenne ich noch books24x7 aber das ist mehr für Firmen / Konzerne. Falls Ihr für einen Konzern arbeitet, der das für alle Mitarbeiter hat: Nutzt es! Das ist genial. (Wir haben es aber nur indirekt über einen weiteren Anbieter - da gibt es dann einige Features nicht .... So wie auf einem Gerät auch offline lesen können und so ...)
 
B

BestGoalkeeper

Gast
Aaa, schon gut ich nehme es zurück, es gibt keine Predefined Character Class, die die möglichen Zeichen so weit eingrenzt...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Regex Order unwichtig bei Lookaheads? Java Basics - Anfänger-Themen 7
F RegEx Hilfe Java Basics - Anfänger-Themen 5
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
W RegEx Java Basics - Anfänger-Themen 4
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
A Zusammengesetzte Nomen/Straßennamen mit Regex-Ausdrücken trennen Java Basics - Anfänger-Themen 8
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
H Java Regex Aufzählung kontrollieren Java Basics - Anfänger-Themen 3
Nooobi Regex und .matches() geben keine Ausnahme Java Basics - Anfänger-Themen 10
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
K Wie verneine ich einen Regex? Java Basics - Anfänger-Themen 2
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
Dimax RegEx Java Basics - Anfänger-Themen 10
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
O Regex bei ReplaceAll ersetzt Wort und Sonderzeichen nicht. Java Basics - Anfänger-Themen 9
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
L Regex issue Java Basics - Anfänger-Themen 4
B Regex Kombination benötigt Java Basics - Anfänger-Themen 5
strohkolben Regex Java Basics - Anfänger-Themen 3
OnDemand Regex oder Split? Java Basics - Anfänger-Themen 5
I String.split regex Frage Java Basics - Anfänger-Themen 2
C RegEx Problem Java Basics - Anfänger-Themen 4
Dimax RegEx funktionieren nicht Java Basics - Anfänger-Themen 7
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
K substitute mit regex Java Basics - Anfänger-Themen 10
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
M Regex Probleme (mal wieder) Java Basics - Anfänger-Themen 3
M Regex zum Integer.parseInt Java Basics - Anfänger-Themen 4
G Regex Java Basics - Anfänger-Themen 4
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
M Regex anpassen Java Basics - Anfänger-Themen 19
C Regex-Problem Java Basics - Anfänger-Themen 4
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
F RegEx für Email Java Basics - Anfänger-Themen 2
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
FelixN RegEx Erläuterung "ˆ[ˆa-zA-Z]+$" Java Basics - Anfänger-Themen 6
F Regex Hilfe Java Basics - Anfänger-Themen 3
I Regex findet keine Treffer Java Basics - Anfänger-Themen 4
C Regex Java Basics - Anfänger-Themen 2
C Probleme bei Regex Java Basics - Anfänger-Themen 9
B Regex ignorieren von Groß - Kleinschreibung Java Basics - Anfänger-Themen 1
F Regex für Inlineformatierungen Java Basics - Anfänger-Themen 12
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
O Regex Java Basics - Anfänger-Themen 2
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
H regex-Problem Java Basics - Anfänger-Themen 2
F Ist das ein korrekter Regex-Ausdruck? Java Basics - Anfänger-Themen 12
M Zahlenbereich mit RegEx Java Basics - Anfänger-Themen 3
B Hilfe bei Regex - Erstellung Java Basics - Anfänger-Themen 5
D regex Aufbau Frage Java Basics - Anfänger-Themen 4
W RegEx Matcher + Pattern und Emails Java Basics - Anfänger-Themen 8
R Rechenzeichen als regex Java Basics - Anfänger-Themen 10
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
C Erste Schritte Regex - Datei einlesen und splitten Java Basics - Anfänger-Themen 4
F RegEx Problem Java Basics - Anfänger-Themen 8
F Regex Hilfe Java Basics - Anfänger-Themen 14
G String nach Contains/Regex Java Basics - Anfänger-Themen 2
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
K RegEx - Multiple Line Java Basics - Anfänger-Themen 3
S Regex Pattern Java Basics - Anfänger-Themen 3
K Regex: illegal character range Java Basics - Anfänger-Themen 4
F RegEX Hilfe Java Basics - Anfänger-Themen 8
U Regex für kommaseparierte Zahlen Java Basics - Anfänger-Themen 1
K Operatoren Regex für 10er Zahlen Java Basics - Anfänger-Themen 8
V Java Regex richtig parsen Java Basics - Anfänger-Themen 2
E Brauche eine Antwort zum Thema RegEx ( Alternative zur Lösung auch gesucht ) Java Basics - Anfänger-Themen 5
N mein RegEx Java Basics - Anfänger-Themen 2
C Lösung für RegEx in Java gesucht Java Basics - Anfänger-Themen 2
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
M Regex/matcher Java Basics - Anfänger-Themen 2
T Methoden String.matches() - Regex Java Basics - Anfänger-Themen 2
truesoul Regex für www Java Basics - Anfänger-Themen 0
N Methoden Straßennamen und Hausnummer - RegEx Java Basics - Anfänger-Themen 19
W Erste Schritte Regex negieren Java Basics - Anfänger-Themen 3
W String match mit Wildcard ODER Regex Java Basics - Anfänger-Themen 1
E useDelimiter-Anwednung / Regex Java Basics - Anfänger-Themen 2
C java regex Java Basics - Anfänger-Themen 2
C Regex zum matchen ausserhalb von Tags Java Basics - Anfänger-Themen 3
O Regex zwischenspeichern Java Basics - Anfänger-Themen 6
O Regex Java Basics - Anfänger-Themen 5
R Einfacher Regex Java Basics - Anfänger-Themen 3
V RegEx Java Basics - Anfänger-Themen 15
HoloYoitsu Datentypen replaceAll() mit regex? Java Basics - Anfänger-Themen 5
G regex Verständnis Problem Java Basics - Anfänger-Themen 3
G verwendung von regex Java Basics - Anfänger-Themen 3
X Regex splitten Java Basics - Anfänger-Themen 5
T Regex Problem Java Basics - Anfänger-Themen 4
B String nach regex überprüfen Java Basics - Anfänger-Themen 6
J Regex Ausdrücke im Array - Wieso werden sie nicht erkannt? Java Basics - Anfänger-Themen 4
N Regex Java Basics - Anfänger-Themen 4
F String.replaceAll() funktioniert nicht richtig oder habe ich den falschen Regex?? Java Basics - Anfänger-Themen 3
J Regex mit Return Java Basics - Anfänger-Themen 3
I Rechenoperatoren mit Regex splitten Java Basics - Anfänger-Themen 12
F Methoden replaceAll (regex) HTML Java Basics - Anfänger-Themen 3
H Problem mit Regex in Verbindung mit BufferedReader Java Basics - Anfänger-Themen 4
A Hilfe mit RegEx Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben