none
Como buscar N cantidad de palabras que contengan un caracter especifico en un string RRS feed

  • Pregunta

  • buenos días, amigos gusto en saludar. 

    estoy tratando de realizar lo siguiente, leo un archivo plano que contiene alrededor de 10 mil palabras y lo que quiero es realizar una función o expresión regular que recorra cada palabra y cuando encuentre una con un carácter especifico guardarla en una variable hasta que recorra cada una de ellas para utilizar esa variable. ej: quiero comer pollo frito. hacer una funcion que me devuelva todas las palbras con r o R 


    felipe borgs

    miércoles, 30 de septiembre de 2020 12:51

Respuestas

  • hola

    Para eso podrias usar el Contains() del string

    var lista = new List<string>();
    
    string contenido = File.ReadAllText("ruta archivo");
    
    string palabras = contenido.Split(' ');
    
    foreach(var palabra in palabras){
    
        if(palabra.Contains('R') || palabra.Contains('r')){
            lista.Add(palabra);
        }
    
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta felipe.borges miércoles, 30 de septiembre de 2020 17:45
    miércoles, 30 de septiembre de 2020 13:20

Todas las respuestas

  • hola

    Para eso podrias usar el Contains() del string

    var lista = new List<string>();
    
    string contenido = File.ReadAllText("ruta archivo");
    
    string palabras = contenido.Split(' ');
    
    foreach(var palabra in palabras){
    
        if(palabra.Contains('R') || palabra.Contains('r')){
            lista.Add(palabra);
        }
    
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta felipe.borges miércoles, 30 de septiembre de 2020 17:45
    miércoles, 30 de septiembre de 2020 13:20
  • Con una linea de linq puedes generar un arreglo:

    string[] palabras = Regex.Matches(texto, @"\w+").OfType<Match>().Select(m => m.Value.ToLower()).Where(p=>p.Contains("r")).ToArray();

    o en un string:

    string palabras = String.Join(" ", Regex.Matches(texto, @"\w+").OfType<Match>().Select(m => m.Value.ToLower()).Where(p=>p.Contains("r")).ToArray());

    Saludos

    miércoles, 30 de septiembre de 2020 13:30
  • si uso la funcion Contains(), solo me devolvera un true o false, mas no las palabras que contengan la r o R en este caso, 

    felipe borgs

    miércoles, 30 de septiembre de 2020 14:46
  • hola

    >>si uso la funcion Contains(), solo me devolvera un true o false

    el true\false sera la evaluacion de cada palabra, despues agregas esta a una lista auxiliar

    No es que guardas el resultado de Contains(), solo lo usas para evaluar en el "if"

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 30 de septiembre de 2020 15:36
  • lo mismo aplica si estoy usando win form 

    felipe borgs

    miércoles, 30 de septiembre de 2020 15:44
  • Hola, 

      

    ¿Alguna novedad sobre la consulta realizada? 

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN.  

    Eric Ruiz

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    miércoles, 30 de septiembre de 2020 16:35
    Moderador