Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

378
Vistas
Obtenga solo palabras completas de una instrucción .Contains()

He usado .Contains() para encontrar si una oración contiene una palabra específica, sin embargo, encontré algo extraño:

Quería saber si la palabra "hola" estaba presente en una oración que es la siguiente:

El niño quería jugar en el barro.

hola

Héctor tenía un problema de cadera

 if(sentence.contains("hi")) { // }

Solo quiero que se filtre la SEGUNDA oración, sin embargo, las 3 se filtran ya que CHILD tiene un 'hola' y hip tiene un 'hola'. ¿Cómo uso .Contains() de modo que solo se seleccionen palabras completas?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Intenta usar expresiones regulares:

 if (Regex.Match(sentence, @"\bhi\b", RegexOptions.IgnoreCase).Success) { // };

Esto funciona bien para mí en su texto de entrada.

over 4 years ago · Santiago Trujillo Denunciar

0

Aquí hay una solución Regex:

Regex tiene un ancla de límite de palabra usando \b

Además, si la cadena de búsqueda puede provenir de la entrada del usuario, podría considerar escapar de la cadena usando Regex.Escape

Este ejemplo debería filtrar una lista de cadenas de la forma que desee.

 string findme = "hi"; string pattern = @"\b" + Regex.Escape(findme) + @"\b"; Regex re = new Regex(pattern,RegexOptions.IgnoreCase); List<string> data = new List<string> { "The child wanted to play in the mud", "Hi there", "Hector had a hip problem" }; var filtered = data.Where(d => re.IsMatch(d));

Ejemplo de DotNetFiddle

over 4 years ago · Santiago Trujillo Denunciar

0

Puede dividir su oración en palabras: puede dividir en cada espacio y luego recortar cualquier puntuación. Luego verifica si alguna de estas palabras es 'hola':

 var punctuation = source.Where(Char.IsPunctuation).Distinct().ToArray(); var words = sentence.Split().Select(x => x.Trim(punctuation)); var containsHi = words.Contains("hi", StringComparer.OrdinalIgnoreCase);

Vea una demostración funcional aquí: https://dotnetfiddle.net/AomXWx

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda