Entwickler-Ecke

C# - Die Sprache - Regex, alles ausser 0,000


sunspeed - Do 22.06.06 10:19
Titel: Regex, alles ausser 0,000
Halli Hallo und Mahlzeit,

wir versuchen gerade einem Validator beizubringen,
dass er alle Werte ausser 0,000 zulassen soll.
Wir haben jetzt schon die wildesten Konstrukte, allerdings schlägt dann
immer eine Bedingung fehl, wenn eine andere Erfüllt wurde.

Kennt ihr da einen Standard ausdruck der das übernimmt, dass alle
Werte im positiven aber auch negativen Bereich ausser 0,000 erlaubt sind?

Vielen Dank im Voraus

sunspeed


Kha - Do 22.06.06 11:38

Wozu so kompliziert und alles einem Regex haben wollen? Nimm doch einfach deinen bisherigen Regex für alle rationalen Zahlen und prüfe dann per C#, ob der gefundene String 0 entspricht.


sunspeed - Do 22.06.06 11:52

Danke für deine Antwort,
die möglichkeit is mir klar, allerdings passiert das ganze in einer ASP Seite.

Die Konfiguration für den Validator (RegularExpressionValidator) soll über die
web.config gesteuert werden, und da is naheliegend die RegEx in der WebConfig zu hinterlegen,
von daher kann ich nicht statisch im Code auf 0 prüfen.
Nochdazu kommt, dass es vorgeschrieben wurde des per Regex zu machen.

Dankeschön
Grüße Sunpseed


Kha - Do 22.06.06 11:57

Na dann ;) .

Quelltext
1:
^(?!0+(,0+)?$)\d+(,\d+)?$                    

Getestet mit einer Zahl pro Zeile (+Multiline), sonst eben entsprechend anpassen.

[edit]Kleinen Fehler korrigiert[/edit]


sunspeed - Do 22.06.06 12:02

Vielen Dank!!!!

Grüße Sunspeed


sunspeed - Do 22.06.06 13:29

Hy, noch eine kleine Frage,

wie kann ich den RegEx so erweitern, dass "optional" ein - vor der Zahl stehen kann?
Ich bring das nicht hin.

Grüße Sunspeed


Kha - Do 22.06.06 13:44


Quelltext
1:
^-?(?!0+(,0+)?$)\d+(,\d+)?$                    

;)


sunspeed - Do 22.06.06 14:29

Hy, danke nochmal für deine Hilfe,
aber des mit dem -? davor haben wir schon probiert, da reagiert des
nicht mehr. Sprich es trifft nicht zu.

Wir haben uns jetzt geeinigt, das ganze mit einem CustomValidator zu machen.

Vielen Dank auf alle Fälle nochmal!! :-)

Grüße Sunspeed