2012-02-23 75 views
7

Tengo un archivo de texto para procesar, que tiene algunos números. Quiero JUSTO texto en él, y nada más. Logré eliminar los signos de puntuación, pero ¿cómo elimino los números? Quiero esto usando el código C#.Eliminar números del texto usando C#

Además, quiero eliminar palabras con una longitud mayor que 10. ¿Cómo hago eso usando Reg Expresiones?

+0

¿Cómo se ve el archivo (ejemplo de entrada/salida ???), y ¿dónde está el código para eliminar la puntuación? – Jon

+0

¿Podría proporcionar datos de muestra en su archivo? –

+0

¿Quizás pueda mostrar algún código para que la comunidad pueda ver lo que ha intentado? – Arion

Respuesta

27

Usted puede hacer esto con una expresión regular:

string withNumbers = // string with numbers 
string withoutNumbers = Regex.Replace(withNumbers, "[0-9]", ""); 

Utilice esta expresión regular para eliminar las palabras con más de 10 caracteres:

[\w]{10, 100} 

100 define la longitud máxima de igualar. No sé si hay un cuantificador de longitud min ...

+1

Así es como yo lo haría también. Prachi: ¡recuerda la directiva de uso adicional de System.Text.RegularExpressions si aún no lo tienes! – Bridge

+0

+1, respuesta inmejorable ... –

+0

¡Gracias, funcionó a la perfección! – Cyang

3

Sólo letras y nada más (porque veo que también desea eliminar los signos de puntuación)

Regex.IsMatch(input, @"^[a-zA-Z]+$");

1

También puede utilizar string.join:

string s = "asdasdad34534t3sdf43534"; 
s = string.Join(null, System.Text.RegularExpressions.Regex.Split(s, "[\\d]")); 
1

el método Regex.Replace debe hacer el truco.

// regex to match any digit 
var regex = new Regex("\d");      
// replace all matches in input with empty string 
var output = regex.Replace(input, String.Empty); 
Cuestiones relacionadas