Korzystam z następujących 2 metod, aby podświetlić wyszukiwane słowa kluczowe. Działa dobrze, ale pobiera również częściowe słowa.Wyrażenie regularne w celu dopasowania dokładnego słowa - wyróżnienie ciągu wyszukiwania
na przykład:
Tekst: "To jest .net Programowanie" Search Key Słowo: "jest"
Jest podkreślając częściowe słowo z th jest a "jest"
Proszę dać mi znać prawidłowe wyrażenie regularne, aby podświetlić poprawne dopasowanie.
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
}
Dzięki .. działa dobrze. – stackuser1
Zamiast czego? ma notację, więc słowa kluczowe powinny zostać podzielone w następujący sposób: "\ bthis | is \ b". –
stackuser1 -> :) Ale zobacz moją ostatnią aktualizację. Uwalnianie danych wejściowych jest bardzo ważne, ponieważ w przeciwnym razie użytkownicy mogą je zepsuć:/ –