remarks example cref c# regex text-parsing

c# - example - La mejor manera de obtener todos los dígitos de una cadena



remarks c# (5)

¿Necesitas usar un Regex?

return new String(input.Where(Char.IsDigit).ToArray());

¿Hay alguna forma mejor de obtener una cadena como "(123) 455-2344" y obtener "1234552344" de esto que hacer esto?

var matches = Regex.Matches(input, @"[0-9]+", RegexOptions.Compiled); return String.Join(string.Empty, matches.Cast<Match>() .Select(x => x.Value).ToArray());

Tal vez un patrón de expresiones regulares que puede hacerlo en una sola coincidencia? Aunque no pude crear uno para lograr eso.


¿Tienes algo en contra de Replace ?

return Regex.Replace(input, @"[^0-9]+", "");


En Perl (puede adaptar esto a C #) simplemente haga

$str =~ s/[^0-9]//g;

Estoy asumiendo que su cadena está en $ str. La idea básica es reemplazar todos los no dígitos con '''' (es decir, una cadena vacía)


Querrá reemplazar //D/ (sin dígitos) con '''' (cadena vacía)

Regex r = new Regex(@"/D"); string s = Regex.Replace("(123) 455-2344", r, "");

O más sucintamente:

string s = Regex.Replace("(123) 455-2344", @"/D",""); //return only numbers from string


Simplemente elimine todos los no dígitos:

var result = Regex.Replace(input, @"/D", "");