2010-06-17 20 views

Respuesta

5

El uso de expresiones regulares:

str = Regex.Replace(str, @"\D+", ""); 

\D es el complemento de \d - coincide con todo lo que no sea un dígito. + coincidirá con uno o más de ellos (por lo general, funciona un poco mejor que uno por uno).

Usando Linq (en .Net 4.0):

str = String.Concat(str.Where(Char.IsDigit)); 
-1
string result = System.Text.RegularExpressions.Regex.Replace("text to look for stuff", "pattern", "what to replace it with") 
+0

Umm ¿de acuerdo? ¿Cómo es esto útil? ¿Cómo funciona Regex? ¿Cómo usas misteriosamente esta cosa 'patrón'? ¿Y cómo responde esto a la pregunta? – Jonas

+0

Mi suposición fue simplemente que él no sabía cómo llamar a una regex reemplazar en C# en lugar de querer el código exacto para hacerlo. Después de leer las otras respuestas, me di cuenta de que mi respuesta era deficiente, pero gracias por señalar que estoy equivocado. – Buildstarted

0
string str = "ab123123abc" 
str = Regex.Replace(str, @"[\w]", ""); 

referencia desde http://msdn.microsoft.com/en-us/library/844skk0h.aspx

+0

'[\ w]' es redundante, no necesita una clase de caracteres. '\ w' es exactamente lo mismo. Sin embargo, '\ w' incluye letras y dígitos (y un guión bajo), por lo que terminas con caracteres especiales y espacios. – Kobi

0

i más bien como utilizar la no ^ como ^\d o ^[0-9]

string resultString = null; 
try { 
    resultString = Regex.Replace(subjectString, @"[^\d]+", ""); 
} catch (ArgumentException ex) { 
    // Syntax error in the regular expression 
} 
+1

Bueno, eso es básicamente lo mismo, pero probablemente mejor conocido. El bloque 'try/catch' no es necesario, la única excepción posible es si' subjectString' es 'null', que es mejor que verifique. No obtendrás 'ArgumentException' para este patrón - es correcto':) 'Sin embargo, eso debería ser" '[^ \ d]' o '[^ 0-9]' " – Kobi

Cuestiones relacionadas