Estoy utilizando los siguientes 2 métodos para resaltar las palabras clave de búsqueda. Está funcionando bien, pero también trae palabras parciales.Expresión regular para coincidir con la palabra exacta - Resaltar cadena de búsqueda
Por ejemplo:
texto: "Esta es la programación .net" Búsqueda Palabra clave: "es"
Es de destacar palabra parcial de Th es y "es"
Por favor, hágame saber la expresión regular correcta para resaltar la coincidencia correcta.
private string HighlightSearchKeyWords(string searchKeyWord, string text)
{
Regex exp = new Regex(@", ?");
searchKeyWord = "(\b" + exp.Replace(searchKeyWord, @"|") + "\b)";
exp = new Regex(searchKeyWord, RegexOptions.Singleline | RegexOptions.IgnoreCase);
return exp.Replace(text, new MatchEvaluator(MatchEval));
}
private string MatchEval(Match match)
{
if (match.Groups[1].Success)
{
return "<span class='search-highlight'>" + match.ToString() + "</span>";
}
return ""; //no match
}
Gracias ... funciona bien. – stackuser1
¿En lugar de qué? tiene una notación para que las palabras clave se dividan como: "\ bthis | is \ b". –
stackuser1 -> :) Pero mira mi última actualización. Escapar los datos de entrada es realmente importante, de lo contrario sus usuarios pueden romperlo:/ –