REGEX Um Zahlen zu akzeptieren, die durch Kommata getrennt sind, aber der Nummernbereich ist 0-32767

8

Ich muss einen regulären Ausdruck schreiben, um solche Eingaben zu machen

%Vor%

d.

  1. Keine Kommas am Anfang oder Ende erlaubt.
  2. Leerzeichen können vor und / oder beginnen von Komma für z.B. 23, 45, 56, 67 usw.
  3. Die Bereiche jeder Nummer sollten 0-32767 sein.

Momentan verwende ich regulären Ausdruck wie diese [0-9]+(,[0-9]+)* .

Dies ermöglicht Zahlen, die nur durch Kommata getrennt sind (keine Leerzeichen zuzulassen), und es wird nicht nach dem Zahlenbereich gesucht.

    
Basmah 07.06.2011, 07:16
quelle

2 Antworten

15

Es ist wahrscheinlich klug, es in zwei Schritten zu machen. Überprüfen Sie zuerst, ob der Bereich 0-99999 ist:

%Vor%

Parsen Sie dann die Zeichenkette unter Verwendung einer allgemeinen Programmiersprache zu einer Liste von ganzen Zahlen und prüfen Sie x <= 32767 für jede ganze Zahl x.

    
Mark Byers 07.06.2011, 07:22
quelle
9

Sie können einen Zahlenbereich mit einer Regex validieren, aber da Sie sich die textliche Darstellung von Zahlen ansehen müssen, ist die Regex schwer zu lesen:

%Vor%

entspricht einer Ganzzahl zwischen 0 und 32767 mit optionalen führenden Nullen.

Also wäre deine gesamte Regex

%Vor%

Stellen Sie sich vor, Sie erben diesen Regex von einem Kollegen, der Ihre Firma vor Jahren verlassen hat ... Viel Spaß:)

Nimm deshalb Marks Rat.

Diese Antwort ist ausschließlich für Bildungszwecke gedacht und stellt nicht eine Empfehlung dar, in diesem Fall eine Regex zu verwenden.

    
Tim Pietzcker 07.06.2011 07:25
quelle