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

并用***代替 最后把结果输出在控制台中 哪位大侠能帮忙 谢谢 ~!!
2024-12-22 22:00:50
推荐回答(3个)
回答1:

//要查找的关键词
          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();

回答2:

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

string 关键词 = "[关键词1|关键词2|关键词3]"; //将所有的关键词,用|分割,列出
string fileContent = System.IO.File.ReadAllText(@"d:\a.txt"); //读取你的文本文件
string 过滤后的结果 = System.Text.RegularExpressions.Regex.Replace(fileContent, 关键词, "***");
Console.Write(过滤后的结果); //输出到控制台
Console.Read();

回答3:

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;
{

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命名空间;