Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

384
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!