ich folgendes Problem haben:Regex Ausdruck für Anpassungsbereiche
- Ein String ist über Regex-Ausdruck validiert werden.
- Die Zeichenfolge enthält Bereiche oder einzelne Werte, die durch ein Semikolon getrennt sind, z.
100-200;10;2300-3400;34;
- Der Höchstwert jeder Nummer ist
99999
. - In der Zeichenfolge sind keine Buchstaben zulässig.
Was ich bisher:
^([0-9]{1,5}[-][0-9]{1,5}[;])? ^([0-9]{1,5}[;])? ([0-9]{1,5}[-][0-9]{1,5}[;])?([0-9]{1,5}[;])? ([0-9]{1,5}[-][0-9]{1,5}[;])*$? ([0-9]{1,5}[;])*$?
So meine regex besteht aus drei optionale Gruppe-Typen:
- Beginn:
^([0-9]{1,5}[-][0-9]{1,5}[;])? ^([0-9]{1,5}[;])?
- Mitte:
([0-9]{1,5}[-][0-9]{1,5}[;])?([0-9]{1,5}[;])?
- End :
([0-9]{1,5}[-][0-9]{1,5}[;])*$? ([0-9]{1,5}[;])*$?
Diese Regex löst mein Problem zwar nicht, da zum Beispiel Buchstaben innerhalb des Eingabeausdrucks oft true zurückgeben, aber false zurückgeben sollten. Irgendeine Idee, wie man das löst?
Dies ist eine vereinfachte Version der Regex nach dem Kommentar von RB:
- Beginn:
^(\d{1,5}\-\d{1,5};)? ^(\d{1,5};)?
- Mitte:
(\d{1,5}\-\d{1,5};)? (\d{1,5};)?
- Ende:
(\d{1,5}\-\d{1,5};)*$? (\d{1,5};)*$?
Wie wäre es mit negativen '-10-10' Bereichen und absteigenden Bereichen' 200-100'? – fubo
Negative Bereiche sind nicht erlaubt, absteigende sind – Chris
Warum nicht einfach String Split zuerst durch Semikolon und dann durch Bindestrich geteilt. Schließlich verwenden Sie int.TryParse. – jdweng