417 Stimmen

Regex nur für Zahlen

Ich habe noch nie reguläre Ausdrücke verwendet, daher habe ich Schwierigkeiten bei der Fehlersuche. Ich möchte, dass der reguläre Ausdruck nur dann übereinstimmt, wenn die enthaltene Zeichenkette nur aus Zahlen besteht, aber bei den beiden Beispielen unten wird eine Zeichenkette gefunden, die alle Zahlen plus ein Gleichheitszeichen wie "1234=4321" enthält. Ich bin sicher, es gibt eine Möglichkeit, dieses Verhalten zu ändern, aber wie gesagt, ich habe noch nie viel mit regulären Ausdrücken gemacht.

string compare = "1234=4321";
Regex regex = new Regex(@"[\d]");

if (regex.IsMatch(compare))
{ 
    //true
}

regex = new Regex("[0-9]");

if (regex.IsMatch(compare))
{ 
    //true
}

Falls es von Bedeutung ist, ich verwende C# und .NET2.0.

20voto

Raz Megrelidze Punkte 2613

Vielleicht wird Ihnen meine Methode helfen.

    public static bool IsNumber(string s)
    {
        return s.All(char.IsDigit);
    }

18voto

Ujjal Suttra Dhar Punkte 787

Wenn Sie prüfen müssen, ob alle Ziffern Zahlen (0-9) sind oder nicht,

^[0-9]+$

Streichhölzer

1425
0142
0
1

Und stimmt nicht überein mit

154a25
1234=3254

14voto

fnc12 Punkte 2203

Entschuldigung für die hässliche Formatierung. Für eine beliebige Anzahl von Ziffern:

[0-9]*

Für eine oder mehrere Stellen:

[0-9]+

11voto

Mark Brackett Punkte 83046

^ \d +$, was auf Englisch "start of string", "1 or more digits", "end of string" bedeutet.

11voto

Marina Punkte 774

Hier ist meine funktionierende Version:

^(-?[1-9]+\\d*([.]\\d+)?)$|^(-?0[.]\\d*[1-9]+)$|^0$

Und einige Tests

Positive Tests:

string []goodNumbers={"3","-3","0","0.0","1.0","0.1","0.0001","-555","94549870965"};

Negative Tests:

string []badNums={"a",""," ","-","001","-00.2","000.5",".3","3."," -1","--1","-.1","-0"};

Geprüft nicht nur für C#, sondern auch mit Java, Javascript und PHP

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X