html 显示搜索结果,搜索结果高亮显示(不改变html标签)

一、问题的产生 搜索结果高亮显示,在新闻标题,来源之类的地方好做,只需要用str.Replace(keyword,"font style=/"color:red;/"" + keyword +"/font");这样的方法就可实现。 例如:新闻内容里的图片img alt="" src="Upload/1.jpg" /,搜索时使用的关键字为oa

一、问题的产生

搜索结果高亮显示,在新闻标题,来源之类的地方好做,只需要用str.Replace(keyword,"");这样的方法就可实现。

例如:新闻内容里的图片,搜索时使用的关键字为oa,则会将新闻内容中这张图片替换为oad/1.jpg" />,这张图片就显示不出来了。

二、实现原理

再次,将搜索结果替换为高亮显示状态;

三、实现代码

以下代码是网上搜集的,来源不详,在此对作者表示感谢。

public static string Reg(string input, string replace)

{

//设置高亮样式

string replaceformat = "";

System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(String.Format("{0}", replace), System.Text.RegularExpressions.RegexOptions.Multiline);

return reg.Replace(input, string.Format(replaceformat, replace));

}

///

/// 设置各个html部分为自定义标号

///

/// 输入内容

/// 匹配集合

/// 替换的字串

public static string protectHtml(string input, ref System.Text.RegularExpressions.MatchCollection matches)

{

//匹配html的正则

System.Text.RegularExpressions.Regex htmlReg =

new System.Text.RegularExpressions.Regex(@"/<.>", System.Text.RegularExpressions.RegexOptions.Multiline);

//获取匹配集合

matches = htmlReg.Matches(input);

//设置替换字串

string markFormat = "[[{0}]]";

//替换html,记录位置

for (int i = 0; i < matches.Count; i++)

{

input = input.Replace(matches[i].Value, string.Format(markFormat, i));

}

return input;

}

///

/// 将标号恢复html

///

/// 高亮设置好的字串

/// 匹配集合

/// 最终字串

public static string restoreHtml(string input, System.Text.RegularExpressions.MatchCollection matches)

{

//设置替换字串

string markFormat = "[[{0}]]";

for (int i = 0; i < matches.Count; i++)

{

input = input.Replace(string.Format(markFormat, i), matches[i].Value);

}

return input;

}

使用方法:

System.Text.RegularExpressions.MatchCollection matches = null;

temp = Reg(temp, KeyWords);//替换关键字为高亮显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值