470 Stimmen

Suchen und Extrahieren einer Zahl aus einer Zeichenkette

Ich habe die Anforderung, eine in einer Zeichenkette enthaltene Zahl zu finden und zu extrahieren.

Zum Beispiel aus diesen Zeichenfolgen:

string test = "1 test"
string test1 = " 1 test"
string test2 = "test 99"

Wie kann ich das tun?

9voto

spender Punkte 111351
var match=Regex.Match(@"a99b",@"\d+");
if(match.Success)
{
    int val;
    if(int.TryParse(match.Value,out val))
    {
        //val is set
    }
}

9voto

Richard Fu Punkte 566

Für diejenigen, die dezimal Nummer aus einer Zeichenkette mit Regex sur ZWEI Linie:

decimal result = 0;
decimal.TryParse(Regex.Match(s, @"\d+").Value, out result);

Das Gleiche gilt für Schwimmer , lang , etc...

7voto

Atters Punkte 771

Die Frage besagt nicht ausdrücklich, dass Sie nur die Zeichen 0 bis 9 benötigen, aber es wäre nicht übertrieben zu glauben, dass dies aus Ihrem Beispielsatz und Ihren Kommentaren hervorgeht. Hier ist also der Code, der das tut.

        string digitsOnly = String.Empty;
        foreach (char c in s)
        {
            // Do not use IsDigit as it will include more than the characters 0 through to 9
            if (c >= '0' && c <= '9') digitsOnly += c;
        }

Warum Sie Char.IsDigit() nicht verwenden sollten - Zahlen umfassen Zeichen wie Brüche, tiefgestellte und hochgestellte Zahlen, römische Ziffern, Währungsziffern, eingekreiste Zahlen und skriptspezifische Ziffern.

6voto

Tom Punkte 139
var outputString = String.Join("", inputString.Where(Char.IsDigit));

Ermittelt alle Zahlen in der Zeichenkette. Wenn Sie also z.B. '1 plus 2' verwenden, erhalten Sie '12'.

5voto

Reed Punkte 1305

Ich habe diesen Einzeiler verwendet, um alle Zahlen aus einer beliebigen Zeichenfolge zu ziehen.

var phoneNumber = "(555)123-4567";
var numsOnly = string.Join("", new Regex("[0-9]").Matches(phoneNumber)); // 5551234567

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