112 votes

Regex pour supprimer tout (non numérique OU période)

J'ai besoin d'un texte comme "joe ($3,004.50)" pour être filtré jusqu'à 3004.50 mais je suis nul en regex et je ne trouve pas de solution appropriée. Je suis nul en regex et je n'arrive pas à trouver une solution adéquate. Seuls les chiffres et les points doivent rester - tout le reste est filtré. J'utilise C# et VS.net 2008 framework 3.5.

201voto

josephj1989 Points 3934

Cela devrait le faire

   string x = "joe ($3,004.50)" ;
        x = Regex.Replace(x, "[^0-9.]", "");

39voto

Matthew Flaschen Points 131723

La regex est :

[^0-9.]

Vous pouvez mettre en cache le regex :

Regex not_num_period = new Regex("[^0-9.]")

alors utilisez :

string result = not_num_period.Replace("joe ($3,004.50)", "");

Cependant, vous devez garder à l'esprit que certaines cultures ont des conventions différentes pour écrire les montants monétaires, comme par exemple : 3.004,50.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X