用C#实现关键词过滤 思路是调用一个TXT文档 并根据已有的关键词对TXT文档内的内容进行过滤

并用***代替最后把结果输出在控制台中哪位大侠能帮忙谢谢~!!... 并用***代替 最后把结果输出在控制台中
哪位大侠能帮忙
谢谢 ~!!
展开
 我来答
bxfc
推荐于2016-02-27 · TA获得超过872个赞
知道小有建树答主
回答量:1104
采纳率:0%
帮助的人:672万
展开全部
//要查找的关键词
          string keyword = "要查找的词";
          //文件地址
          string filePath = @"D:\a.txt";
          //创建新文件,原文件以留校验或者备份
          string filePathNew = filePath + ".New.txt";
          //读取所有内容(此种方式仅适用于小文件,如果你直接读取几百M以上的大文件,除非你的机子内存足够大)
          string fileString = System.IO.File.ReadAllText(filePath);
          //以***替换指定的关键词
          fileString = fileString.Replace(keyword, "***");
          ////新文件是否存在,是则删除
          //if (System.IO.File.Exists(filePathNew))
          //    System.IO.File.Delete(filePathNew);
          ////写入新文件
          //System.IO.File.AppendAllText(filePathNew, fileString);
          Console.WriteLine(fileString);
          Console.Read();
百度网友94f02eb
2013-05-14 · TA获得超过8612个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4371万
展开全部

关键词过滤,简洁高效的方式,是使用正则表达式:示例代码如下:

string 关键词 = "[关键词1|关键词2|关键词3]"; //将所有的关键词,用|分割,列出
string fileContent = System.IO.File.ReadAllText(@"d:\a.txt"); //读取你的文本文件
string 过滤后的结果 = System.Text.RegularExpressions.Regex.Replace(fileContent, 关键词, "***");
Console.Write(过滤后的结果); //输出到控制台
Console.Read();
追问
运行后怎么老出现  错误(  类、结构或接口成员声明中的标记“(”无效 )
就是Console.Write(过滤后的结果); 这两个括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shao0sha
2013-05-14 · TA获得超过8564个赞
知道大有可为答主
回答量:8005
采纳率:0%
帮助的人:1560万
展开全部
FILESTREAM FS = File.OpenRead(“路径”);

字节的[] =新的字节[1024];

同时在两个步骤(FS文件阅读(B,0,b.length个)> 0)

{

TextBox2.Text + = Encoding.Default.GetString(b)条;

}

然后常规赛 BR />正则表达式得到MYREG内容=新的正则表达式(“(*?)</文)

的MatchCollection = myreg.Matches(”文本“);
>串x =“”;

(INT I = 0; <m.Count; + +)

{

X = X +米[I]。Value.tostring( )更换(“”,“”)替换(“”,“”);/ /删除

}

@用户名分离(即,由空格分隔的话),你可以

串MSTR =“”;

字符串[] = mstr.Split('');/ /利用空间被分为strlist阵列

(strlist [1]的indexOf(“!”)> = 0)

{ MSTR = mstr.Replace(strlist [1]的ToString(),“”);

}

然后创建一个文件,并写入数据

字符串路径=使用Server.Mappath(“路径”);

FileInfo的FI =新的FileInfo(路径); BR />(fi.Exists)/ /如果文件不存在

{

fi.Create();/ /创建文件

}的
>写文件

FILESTREAM FS = File.OpenWrite(“路径”);/ /打开文件

fs.Seek(0,SeekOrigin.End);/ /指向文件头

byte []的为b = Encoding.Default.GetBytes(“内容”);/ /输入的内容转换为字节数组

fs.Write(B,0,b.length个);/ /写的内容

fs.Close();/ /关闭文件

想法
定期使用System.Text.RegularExpressions命名空间;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式