web-dev-qa-db-fra.com

Regex pour obtenir NUMBER uniquement à partir de String

Je reçois XML de "7+" ou "5+" ou "+5" et souhaite extraire uniquement le nombre de chaînes à l'aide de Regex. par exemple, fonction Regex.Match ()

        stringThatHaveCharacters = stringThatHaveCharacters.Trim();
        Match m = Regex.Match(stringThatHaveCharacters, "WHAT I USE HERE");
        int number = Convert.ToInt32(m.Value);
        return number;
57
Muhammad Adnan

\d+

\d représente n’importe quel chiffre, + pour un ou plusieurs. Si vous voulez aussi attraper des nombres négatifs, vous pouvez utiliser -?\d+.

Notez qu'en tant que chaîne, il devrait être représenté en C # par "\\d+", ou @"\d+"

67
Kobi

Les réponses ci-dessus sont excellentes. Si vous avez besoin d'analyser tous les nombres d'une chaîne non consécutifs dans une chaîne, les éléments suivants peuvent vous être utiles:

string input = "1-205-330-2342";
string result = Regex.Replace(input, @"[^\d]", "");
Console.WriteLine(result); // >> 12053302342
113
bluetoft

Non plus [0-9] ou \d1 devrait suffire si vous n'avez besoin que d'un seul chiffre. Ajouter + si vous avez besoin de plus.


1 La sémantique diffère légèrement de \d correspond potentiellement tout chiffre décimal dans n'importe quel script utilisant des chiffres décimaux.

4
Joey