我需要突出显示文本块中的搜索项。正则表达式替换matchEvaluator使用字符串数组
我最初的想法是循环搜索条件。但有没有更简单的方法?
这里是我使用的是循环思维...
public string HighlightText(string inputText)
{
string[] sessionPhrases = (string[])Session["KeywordPhrase"];
string description = inputText;
foreach (string field in sessionPhrases)
{
Regex expression = new Regex(field, RegexOptions.IgnoreCase);
description = expression.Replace(description,
new MatchEvaluator(ReplaceKeywords));
}
return description;
}
public string ReplaceKeywords(Match m)
{
return "<span style='color:red;'>" + m.Value + "</span>";
}
你是什么意思?这段代码对我来说很容易。你的意思是更高效,更短,更有用......。 – jhsowter 2012-02-15 05:41:04
是的,效率更高。是否有一个正则表达式替换函数可以处理数组替换? – user713813 2012-02-15 05:50:52
在你的领域使用Regex.Escape是非常重要的。否则,你可能会得到“正则表达式注入”,但不会像sql注入那样糟糕,但并不好。 – jessehouwing 2012-02-15 08:44:12