文章中的特殊词语使用正则替换屏蔽

作者:小菜 更新时间:2025-03-16 点击数:
简介:使用正则替换文章屏蔽词,1500个屏蔽词,6KB的文章,替换用时1毫秒 使用正则替换文章屏蔽词,这个功能很早就用到了,由于使用过程中并未感觉到什么压力,所以一直

【菜科解读】

使用正则替换文章屏蔽词,1500个屏蔽词,6KB的文章,替换用时1毫秒 使用正则替换文章屏蔽词,这个功能很早就用到了,由于使用过程中并未感觉到什么压力,所以一直没有对其性能进行优化。

今天应leader要求,对性能进行了一下测试并作出改进,发现改进后的性能提高了100多倍!原来替换一篇文章用时130多毫秒,现在只需要不到1毫秒的时间!前后主要差别在于正则的生成和循环文章内容的次数。

下边贴出主要代码供大家参考。

view sourceprint?private static readonly Regex reg_b = new Regex(@"\B", RegexOptions.Compiled); private static readonly Regex reg_en = new Regex(@"[a-zA-Z]+", RegexOptions.Compiled); private static readonly Regex reg_num = new Regex(@"^[\-\.\s\d]+$", RegexOptions.Compiled); private static Regex reg_word = null; //组合所有屏蔽词的正则 private static Regex GetRegex() { if (reg_word == null) { reg_word = new Regex(GetPattern(), RegexOptions.Compiled | RegexOptions.IgnoreCase); } return reg_word; } /// /// 检查输入内容是否包含脏词(包含返回true) /// public static bool HasBlockWords(string raw) { return GetRegex().Match(raw).Success; } /// /// 脏词替换成*号 /// public static string WordsFilter(string raw) { return GetRegex().Replace(raw, "***"); } /// /// 获取内容中含有的脏词 /// public static IEnumerable GetBlockWords(string raw) { foreach (Match mat in reg_word.Matches(raw)) { yield return (mat.Value); } } private static string GetPattern() { StringBuilder patt = new StringBuilder(); string s; foreach (string word in GetBlockWords()) { if (word.Length == 0) continue; if (word.Length == 1) { patt.AppendFormat("|({0})", word); } else if (reg_num.IsMatch(word)) { patt.AppendFormat("|({0})", word); } else if (reg_en.IsMatch(word)) { s = reg_b.Replace(word, @"(?:[^a-zA-Z]{0,3})"); patt.AppendFormat("|({0})", s); } else { s = reg_b.Replace(word, @"(?:[^\u4e00-\u9fa5]{0,3})"); patt.AppendFormat("|({0})", s); } } if (patt.Length > 0) { patt.Remove(0, 1); } return patt.ToString(); } /// /// 获取所有脏词 /// public static string[] GetBlockWords() { return new string[]{"国民党","fuck","110"};//这里应该从数据库获取 } 这个程序可替换以下内容:国民党国-民-党国o民o党fuckf.u.c.k110(110的变形写法不被替换)

文章,中的,特殊,词语,使用,正则,替换,屏蔽,

世界上三大生态系统中的第一个是海洋

生态系统是指物种和环境在某些空间中的相互限制,形成一个统一的整体,长期处于相对稳定的平衡状态。

现在地球上的三个生态系统是指湿地森林和海洋,让我们看看它。

3.湿地。

世界三大生态系统之一通常指的是陆地和水域的交界处,水位接近或位于表面湿地。

底部土壤重要是潮湿的土壤,每年生长季节底部都会被淹没。

湿地生态系统可以提供湿地植物和湿地动物,以及微物种和环境。

通过调节直径流,提高水的质地,保护物种多样性,提供旅游资源。

2.森林。

世界三大生态系统之一通常指的是树木,包括植物动物微物种和非物种环境组合的生态系统。

天然森林生态系统和人工森林生态系统一般分为天然森林生态系统和人工森林生态系统。

层次结构丰富,食物链多样,光合效果复杂,森林生态系统也具有保持水土养分水源调节气候的作用。

1.海洋。

世界三大生态系统之一也是世界上最大的生态系统,包括许多不同级别的生态系统。

如海洋生态系统、沿海生态系统、藻类生态系统、红树林生态系统等,由于深海生态系统深海缺乏阳光照射水压。

因此,由于缺乏光合作用,低温和黑暗环境无法发挥光合作用,因此深海中没有光合植物,,因此不使用植物当作食物。

深海生态系统可分为深海化能合成生态系统、深渊生态系统、海山生态系统等。

近年来,对海洋物种学和经济鱼类幼鱼的食品和生长进行了研究。

中山闹鬼事件:著名大学中的诡异事件

我们都知道中山大学是我国的著名的学府之一,但是据说在这个大学中的一个建筑物却有着不同的之处,像极了小编就带大家一来探索中山闹鬼事件,著名大学中的诡异事件吧。

中山大学永芳堂中山大学中的永芳堂是由来自香港南源永芳集团的董事长姚美良在90年的时候花1000万的资金捐助修筑的,是一种外方内圆的双曲面的造型,并且里面放着近代中国十八先贤铜像雕塑群,并且室外的台阶还象征着国家的进展进步。

中山大学永芳堂灵异传闻1、据说在中山大学永芳堂中保存着孙中山先生的衣冠冢,但是也有人说保存的不是孙中山先生的而是姚美良爷爷的衣冠冢。

2、很多人在中山大学永芳堂的设计上有着很多的疑问,疑问曾经有人说永芳堂的设计就好像是一个陵墓的造型,并且永芳堂内设置的十八贤人像更像是一种在为何守护陵墓的样子十分怪异。

3、据说在永芳堂修筑好以后的一年多的时间内,设计这个永芳堂的设计师们都去世了。

并且在永芳堂修筑好后再永芳堂的八字型两撇所指之处,这个地方寸草不生,像是在吸收着什么。

4、还有就是据说在永芳堂下面存在着一具女孩子的尸体,据说这个女孩子是修筑永芳堂的建筑公司老板的女儿,,并且在有的时候会时不时的从永芳堂中传出一个女人的声音出来。

风水探秘永芳堂1、永芳堂据说是孙中山先生的衣冠冢所在之处,都是却做的十分的隐蔽,在这里据说十分的灵异每年的时候都要死一个人在这里陪葬。

出现这样的传闻,在风水上这个地方被称为大凶宅地,只有这样的地方才会出现这样的事情。

2、我们人居住的地方往往是一种格局气场通达的地方,有着安身养命的场所,在一个风水好的地方会带给我们不错的运气,如果居住到了灵异的的地方那么,就会出现不寻常的现象,出现这样的现象就告诉我们要及时改变风水格局。

加入收藏
               

文章中的特殊词语使用正则替换屏蔽

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录