RegEx Seitenbereiche prüfen

Pille1002

Lt. Junior Grade
Registriert
Apr. 2013
Beiträge
396
Hi Zusammen,
ich möchte eine RegEx die prüft, ob ein zu Druckender Seitenbereich richtig eingegeben wurde, so wie es die meisten von euch kennen wenn man in Word ein Dokument drucken möchte:
Unbenannt.png

Konkret mochte ich prüfen das in der übergebenen Zeichenkette nur gültige Kombinationen drin sind wie zB:

"1,2,3-11, 22" usw.
Ich habe schon meherer Ansätze gehabt, aber auf eine 100% Lösung komme ich nicht, eventuelle kann mir eine helfen, danke.

Einer meiner Ansätze bzw Idee:
"^[0-9]+[, -]+[0-9]$"
(Muss mit einer Zahl 0-9 beginnen, mind. 1 mal vorkommen, gefolgt von einem Komma oder einen Minus und endet mit einer Zahl)
oder
^[0-9]+|^[0-9]+[,]+[0-9]+

ich habe dann oft das Problem, das eine Kombination nicht mehr tut.
 
Danke für eure Hilfe!,
@meph!sto so ähnlich hatte ich es auch schon, deckt leider auch nicht alles ab.

@0x8100 .. nice,, sieht soweit ganz gut aus und meine weitere Verarbeitung fängt auch noch bisschen was ab.

Danke für die Hilfe,,:daumen:
 
0x8100 schrieb:
@meph!sto der regex erkennt seitenzahlen ohne "," oder "-" nicht, z.b. "1"

Ach verdammt, danke für den Hinweis (ich schlag' mich zufällig ebenfalls mit RegEx rum)
 
Analyse:
"Die Eingabe besteht aus einer Zahl bzw. einem Zahlenbereich und optional gefolgt durch Komma getrennt aus weiteren Zahlen bzw. Zahlenbereichen"

Pseudocode:
Code:
ZahlBzwZahlenbereich(,ZahlBzwZahlenbereich)*


Weitere Analyse:
"Eine Zahl bzw. ein Zahlenbereich besteht aus mindestens einer Dezimalziffer optional gefolgt von einem "-" und einer weiteren Zahl(=mindestens eine Dezimalziffer)"

Die Regex für "Zahl bzw. Zahlenbereich" sieht also so aus:
Code:
\d+(-\d+)?


Und zusammengesetzt:
Code:
\d+(-\d+)?(,\d+(-\d+)?)*


Falls Du noch Leerzeichen brauchst/willst kannst Du ja als kleine Übung Leerzeichen einstreuen...


HTH

BigNum
 
Zuletzt bearbeitet: (kleiner Vertipper)
Zurück
Oben