各位大侠,帮帮忙哈。
我定义了N个关键字,N1,N2,N3....
想用for循环每次读出来替换他们,就是在传进来的文章内 若读完了N1,后,紧接着替换下一个关键字,
例如,我和你,他还有她,周末玩去吧!红色是关键字,等文章检查完输出后就是*和*,他还有*,周末玩去吧!
这要怎么弄啊,,谢谢了,,快忘光了,,好像用到了stringbuffer还是stringbulder呢,,给点源码吧。
我定义了N个关键字,N1,N2,N3....
想用for循环每次读出来替换他们,就是在传进来的文章内 若读完了N1,后,紧接着替换下一个关键字,
例如,我和你,他还有她,周末玩去吧!红色是关键字,等文章检查完输出后就是*和*,他还有*,周末玩去吧!
这要怎么弄啊,,谢谢了,,快忘光了,,好像用到了stringbuffer还是stringbulder呢,,给点源码吧。
string s="我和你,他还有她,周末玩去吧!"
string[] keywords=new String(){N1,N2,N3};
for(int i=0;i<keywords.Length;i++)
s=s.Replace(keywords[i],"*");
Response.Write(s);
字符串太长的话
new StringBuilder().AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
string str = "我和你,他还有她,周末玩去吧!";
Console.WriteLine(Regex.Replace(str,"[你我她]","*"));
StringBuilder sb=new StringBuilder();
sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
Response.write(sb.ToString());
内容页超连接关键词的完美实现 http://blog.csdn.net/yyixin/archive/2009/07/26/4380877.aspx<% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " ArticleAdd.aspx.cs " Inherits = " ArticleAdd " validateRequest = " false " %><! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > 无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
关 键 词:
< br />< asp:TextBox ID ="TextBox2" runat ="server" Rows ="5" width ="400" TextMode ="MultiLine" Text ="春江|海平|明月" ></ asp:TextBox >
< br />
相应连接:
< br />< asp:TextBox ID ="TextBox3" runat ="server" Rows ="5" width ="400" TextMode ="MultiLine" Text ="http://www.jtwq.com/a.aspx|http://www.jtwq.com/b.aspx|http://www.jtwq.com/c.aspx" ></ asp:TextBox >
< br />
内容输入:
< br />< asp:TextBox ID ="TextBox1" runat ="server" Rows ="5" width ="400" TextMode ="MultiLine" Text ="春江潮水连海平,海上明月共潮声。滟滟随波千万里,何处春江无月明。" ></ asp:TextBox >
< br />
< asp:Button ID ="Button1" runat ="server" Text ="Button" OnClick ="Button1_Click" />
</ div >
</ form >
</ body >
</ html >using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;public partial class ArticleAdd : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e) { } protected void Button1_Click( object sender, EventArgs e)
{
string v = TextBox1.Text; Response.Write(StrInArray(v)); } private string StrInArray( string v)
{
// 关键词与URL可以从数据库中读取,这里直接赋值
string vKey = " 春江|海平|明月 " ; // 关键词
string vHref = " http://www.jtwq.com/a.aspx|http://www.jtwq.com/b.aspx|http://www.jtwq.com/c.aspx " ; // 相应的链接
string [] arr1 = vKey.Split( new char [ 1 ] { ' | ' });
string [] arr2 = vHref.Split( new char [ 1 ] { ' | ' }); string Reg = @" <(a|pre)\b(?:(?!</?\1).)*</\1> " ; // 此正则参考了“lxcnn”的写法
MatchCollection mc = Regex.Matches(v, Reg, RegexOptions.IgnoreCase);
string [] MatchVale = new string [mc.Count];
int i = 0 ;
foreach (Match m in mc)
{
MatchVale[i ++ ] = m.Groups[ 0 ].Value.ToLower().Trim();
v = v.Replace(m.Groups[ 0 ].Value.ToLower().Trim(), " tmpStr " + (i - 1 ));
} for ( int ii = 0 ; ii < arr1.Length; ii ++ )
{
v = v.Replace(arr1[ii], " <a href=\" " + arr2[ii] + " \"> " + arr1[ii] + " </a> " );
} for ( int iii = 0 ; iii < MatchVale.Length; iii ++ )
{
v = v.Replace( " tmpStr " + iii, MatchVale[iii]);
} return v;
}
}
又假设你要替换掉的关键词是:string[] keywords = {"N1","N2","N3"...};
那么,高效的替换方式是:
string arctic = "文章内容...";
string[] keywords = { "N1", "N2", "N3" }; StringBuilder arcticBuffer = new StringBuilder(arctic);
foreach (string keyword in keywords)
{
arcticBuffer = arcticBuffer.Replace(keyword, "*");
} string result = arcticBuffer.ToString();