Sto usando i seguenti 2 metodi per evidenziare le parole chiave di ricerca. Funziona bene ma anche le parole parziali.Espressione regolare per abbinare la parola esatta - Evidenziazione stringa di ricerca
Per esempio:
testo: "Questo è .net Programmazione" Ricerca Parola chiave: "è"
Si sta mettendo in luce parola parziale ° è e "è"
Per favore fatemi sapere l'espressione regolare corretta per evidenziare la corrispondenza corretta.
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
}
Grazie .. funziona perfettamente. – stackuser1
Invece di cosa? ha una notazione, quindi le parole chiave dovrebbero essere suddivise come: "\ bthis | is \ b". –
stackuser1 -> :) Ma vedi il mio ultimo aggiornamento. Scappare i dati di input è davvero importante per fare altrimenti i tuoi utenti possono rompere la cosa:/ –