J'utilise les 2 méthodes suivantes pour mettre en évidence les mots-clés de recherche. Cela fonctionne bien mais aussi chercher des mots partiels.Expression régulière pour correspondre mot exact - chaîne de recherche Mettez en surbrillance
Par exemple:
texte: "Ceci est la programmation .net" Recherche mot clé: "est"
Il met en avant mot partiel de e est et "est"
S'il vous plaît laissez-moi savoir l'expression régulière correcte pour mettre en évidence la correspondance correcte.
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
}
Merci .. il fonctionne bien. – stackuser1
Au lieu de quoi? il a une notation, ainsi les mots-clés devraient être séparés comme: "\ bthis | is \ b". –
stackuser1 -> :) Mais voir ma dernière mise à jour. Il est très important de s'échapper des données d'entrée, sinon vos utilisateurs peuvent casser la chose:/ –