一个TextBox输入关键词,按"搜索"搜出title or content字段中含有关键词的记录在gridview中显示,这个已经实现,想要:
1.如果是在title中搜出的,title全部显示,关键词红色显示,显示content的前面40个字.
2.如果是在content中搜出的,title全部显示,显示content的关键词前后共40个字,关键词红色显示.
1.如果是在title中搜出的,title全部显示,关键词红色显示,显示content的前面40个字.
2.如果是在content中搜出的,title全部显示,显示content的关键词前后共40个字,关键词红色显示.
解决方案 »
- vs2005, asp.net 做WEB网页时,DIV中间的图片与IE的框架之间有空白处,怎么办?
- .net发布后在本地可以运行.到服务器上就报错?错误代码如下
- 请教一个关于页面刷新的问题
- adRotator.add 加本地图片的问题
- 哪位能我说说.net中操作数据库事务
- 请问怎么给File Filed控件赋值
- 页面绑定对象未将对象设置应用到实例
- 取[#dfjsdlfjsdlk#]djfsdlkfjsdl[#ewrwerwer#]中"[#"和"#]"中间的字符,正则表达式怎么写?
- 请问这个输出数据到excel的为什么会这样?
- 一直无人能解答的两个问题,高手!!!???
- 请教一个正则表达式的问题
- |M| 如何知道 网页加载的时候如果禁用了Active的时候提示Active已禁用
string pattern = @"([^" + keyWord + "]{0,40})(" + keyWord + ")(.{0,40})";
//标题与内容
string title = "中华人民共和国中华人民共和国";
string body = "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国";
//搜索结果
string resultTitle = null;
string resultBody = null; resultTitle = Regex.Replace(title, "(" + keyWord + ")", "<strong style='color:red;'>$1</strong>");
if (Regex.IsMatch(body, pattern))
{
Match m = Regex.Match(body, pattern);
string left = m.Groups[1].Value.ToString(); //关键字左边的文字
string right = m.Groups[3].Value.ToString(); //关键字右边的文字 if (left.Length + right.Length <= 40) //关键字前后的总字数不足40
{
resultBody = left + "<strong style='color:Red;'>" + keyWord + "</strong>" + right;
}
else
{
resultBody = left + "<strong style='color:Red;'>" + keyWord + "</strong>" + right.Substring(0, 40 - left.Length) + "...";
} }
Response.Write(resultTitle + "<br />" + resultBody);
冷静思考,动点脑筋,单纯的字符操作 ....数据库 SELECT 中处理,或者 应用程序处理都形,前者效率高,但此查询功能目标也就定死了假如 Content 是 Text 之类的 CLOB 类型,那么只有应用程序中才能 Replace 了