Verschachteln von REGEX

AmunRa

Gesperrter Benutzer
Ich habe folgenden Situation.

*w *d

wobei Stern jede beliebe positive zahl sein kann und auch 0
Gültig sind auch werte wo nur z.b *d steht

das heist :
4w 2d ->gültig
2d ->gültig
23w ->gültig
23 4d ungültig
w 5d ungültig

mein REGEX sieht zurzeit
so aus
Code:
[\\d]+w?[\\s]*?[0-9]+d?

der hat nur das Problem dass er bei mir den Vierten Fall auch als Gültig erkennt aber dafür den zweiten als ungültig erkennt mir ist auch klar warum das so ist, mein Problem ist nur, dass ich nicht weis wie ich es richtig machen sollte, denn
Code:
[[\\d]+w]?[\\s]*?[[0-9]+d]?

ist nicht korrekt

Danke

PS. zwischen den zwei werten dürfen auch beliebig viele Lerrzeichen stehen.
d.h
4w 5d ->ist gültig
 
T

Tomate_Salat

Gast
Java:
String regex	= "[\\d]+?[w|d]{1}(((?<=[w])([ ]*?[\\d]+?d{1}))|[ ]*?)";
		
String[] bez	= {"4w 2d", "2d", "23w", "23 4d", "w 5d", "4w      5d"};
		
for(String b : bez) {
	System.out.print("<" + b +"> ist ");
			
if(b.matches(regex))
	System.out.println("gültig");
else
	System.out.println("ungültig");
}

Hat gut denkarbeit gekostet, aber das Ergebnis ist glaube ich richtig:

Code:
<4w 2d> ist gültig
<2d> ist gültig
<23w> ist gültig
<23 4d> ist ungültig
<w 5d> ist ungültig
<4w      5d> ist gültig

MFG

Tomate_Salat
 
Zuletzt bearbeitet von einem Moderator:

Illuvatar

Top Contributor
Spricht etwas gegen
Java:
String regex    = "(?:\\d+w)?\\s*(?:\\d+d)?";
? Das ist zumindest erstmal einfacher, aber ich hab grad nicht genau nachvollzogen was bei dir alles mit mit Lookbehinds und so gemacht wird... Vielleicht hab ich ja was übersehen ;)
 
T

Tomate_Salat

Gast
ich wollte es [lookbehind] mal ausprobieren (habe noch nicht allzuviel mit regex gemacht und da kam mir das gelegen^^). Nein, ich hab ein Talent, als mal gerne etwas zu kompliziert zu denken. Aber meine tests haben ergeben, dein regex funktioniert genauso gut.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Regex-Regel um fehlende Schlusszeichen zu finden Softwareentwicklung 1
H Regex Frage Softwareentwicklung 2
C Regex Problem Softwareentwicklung 1
H [Java]Regex Hilfe Softwareentwicklung 3
TheJavaKid RegEx Problem Softwareentwicklung 2
P Nur ganze Worte ersetzen mit RegEx Softwareentwicklung 2
C Regex-Problem Softwareentwicklung 24
G RegEx Version number Softwareentwicklung 8
M Regex Ausnahmen/Bedingungen Softwareentwicklung 5
H [RegEx] Anführungszeichen finden Softwareentwicklung 2
B Regex-Problem mit replace außerhalb des matching bereichs liegender Zeichenketten Softwareentwicklung 2
A Regex mit Negation Softwareentwicklung 2
ruutaiokwu regex, der mit nur html-comments, nicht aber javascript entfernt Softwareentwicklung 16
V RegEx um zu escapen? Softwareentwicklung 2
TiME-SPLiNTER Banales regEx-Problem Softwareentwicklung 2
B Regex, um Sätze zu erkennen Softwareentwicklung 3
D Regex zur auswertung von SQL Statements Softwareentwicklung 3
S Regex Frage Softwareentwicklung 4
S sonderzeichen mit regex abfragen Softwareentwicklung 2
N Wie testet ihr regex auf korrektheit? Softwareentwicklung 8
m@nu Problem mit einer RegEx Softwareentwicklung 4
S [RegEx] Dateigerecht geschriebene Namen parsen Softwareentwicklung 2

Ähnliche Java Themen

Neue Themen


Oben