一下为修改过的正则表达式关键字着色:
1) 加入引用System.Text.RegularExpressions
2) 函数:
/// <summary>
/// 格式化搜索结果,如果没有搜索到关键字,返回空
/// </summary>
/// <param name="str"></param>
/// <param name="keywords"></param>
/// <param name="bold">是否加粗</param>
/// <param name="colour">关键字的颜色</param>
/// <returns></returns>
public static string FormatSearchResult(string str, string[] keywords, bool bold, string colour)
{
string _result = str;
bool _matches = false;
string _keyWords = "";
foreach (string _item in keywords)
{
if (str.ToLower().IndexOf(_item.ToLower()) > -1 && _item.Trim ()!="")
{
_matches = true;
_keyWords += _item + "|";
}
}
if(_keyWords.EndsWith("|"))
{
_keyWords = _keyWords.Substring(0, _keyWords.Length - 1);
}
Regex _reg = new Regex("(" + _keyWords + ")", RegexOptions.IgnoreCase);
string _relacement = (colour == ""?"$1":"<span style='color:"+colour+"'>$1</span>");
_relacement = (bold == true ? "<strong>" + _relacement + "</strong>" : _relacement);
_result = _reg.Replace(_result, _relacement);
if (!_matches)
{
_result = "";
}
return _result;
}