Regex

wpb

Erfahrenes Mitglied
Hallo!

Ich hab ein kleines Problem mit einer Regex.
Ich würder gerne überprüfen, ob ein Text folgende
For hat: zahl,zahl oder zahl-> Bsp.: 1,2; 1; 2;0; ...

Bis jetzt hab ich mal das: Regex myRegex = new Regex("^[0-9]*");

Aber wie mach ich weiter?
 
Hallo,
Wenn mich nicht alles täuscht wisst du Zahlen und Kommazahlen erlauben?
Dann brauchst du
Code:
"\\d+(,\\d+)?"
Das heißt:
\\d+ --> Mindestens eine Ziffer
(,\\d+)? --> Ein Beistrich gefolgt von mindestens einer Zahl, und das 0 oder 1 mal

Zu deinem Regex: ^ bedeutet nicht, das heißt du suchst derzeit nach allem außer Ziffern
 
Zuletzt bearbeitet:
Zu deinem Regex: ^ bedeutet nicht, das heißt du suchst derzeit nach allem außer Ziffern

Das ist falsch. Es markiert in diesem Fall den Anfang des Strings (oder im multiline-mode den Anfang einer Zeile). Dein Ausdruck ist an sich aber OK, aber ihm fehlt eben diese markierung. Dein Ausdruck wird auch "foo1,5bar" akzeptieren, weil "1,5" darin vor kommt.

Der Ausdruck muss lauten


oder um bei seiner Schreibweise zu bleiben

^[0-9]+(,[0-9]+)?$

Code

C#:
using System;
using System.Text.RegularExpressions;

class Program {
	
	static void Main(string[] argv) {
		Regex rx;
		
		rx = new Regex(@"\d+(,\d+)?");
		
		//True
		Console.WriteLine(rx.IsMatch("foo1,5bar"));
		
		rx = new Regex(@"^\d+(,\d+)?$"); //= new Regex(@"^[0-9]+(,[0-9]+)?$")
		
		//False
		Console.WriteLine(rx.IsMatch("foo1,5bar"));
		
		//True
		Console.WriteLine(rx.IsMatch("1,5"));
	}
}
 

Neue Beiträge

Zurück