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

【菜科解读】
使用正则替换文章屏蔽词,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、预防癌症你知道,避孕套可以预防癌症吗?这一说法你是不是觉得很惊讶呢?其实,研究表明,宫颈癌的发生可能与下列因素有关:(1)早婚、早产、多性伴侣、包皮垢等对宫颈的刺激与损伤可能是癌症的诱发因素,从而肯定了宫颈癌与性接触有明显的关系。
(2)感染了疱疹病毒的妇女,患宫颈癌的机会要比正常者高出6倍多,由此得出结论,宫颈癌可能是人类疱疹病毒感染所致。
(3)妇女在感染了人类乳头多瘤空泡病毒之后,在5~40年内有5~10%的病人患宫颈癌和外阴癌。
鉴于上述原因,使用避孕套能避免对宫颈癌的直接刺激和病毒的传染,从而减少宫颈癌和其他生殖器癌症的发生。
性交正式开始前戴上避孕套在阴茎勃起时带上避孕套,谨记在阴茎插入对方身体前戴上避孕套。
在阴茎勃起前期所产生的分泌物可能含有精液与导致性病的病菌,能引起怀孕和性病的传播。
性交过程中方式避孕套滑脱在挤压住避孕套前端的同时,以另一只手将避孕套轻轻伸展包覆整个阴茎。
确定避孕套于性交过程中紧套于阴茎上;如果避孕套部分滑脱,立即将其套回原位。
若是避孕套滑落掉出,立即将阴茎抽出,并在继续性交前戴上新的避孕套。
以上就是避孕套使用方法图。
为了确保避孕套的避孕效果,将避孕效果最佳化,建议严格按照避孕套使用方法图来进行操作。
5号网小编说,原来安全套还有这么多以前都没有发现的用处,看来不管以后去哪里,都应该随身携带一些安全套,必要时候还能发挥意想不到的用处呢!
男生想象中的罩杯尺码和女生实际的胸部罩杯尺寸对比
在当代社会,菜科网,随着文明的发展和服装的变化,女性胸部的“美”效应受到高度重视,成为女性美的必要条件。
每个女士都希望有对丰满和富于弹性的乳房。
使之构成女士特有的流畅、圆润、优美的线条美。
那么,男人想象中的罩杯尺寸是多大呢?和实际的有什么区别呢?男生想象中的罩杯尺寸和实际罩杯对比图片胸部的大小一直是个被广泛关注的问题,可是说到bra的尺码,男孩们都挥舞着双前手振振有词:“亚洲女生都是A耶”,“战斗民族的女孩全球第一”。
女生们:“苍井空还没我大,说自己D真不要脸”,“我和我闺蜜都是A,为什么她比我大”,“我知道我看起来小但我真的是D杯啊…”最过分的是,有些男生还要问:我女朋友说自己是C,难道C只有这么大?”对啊,比你大!以上言论足以说明,对胸部的大小,大部分人可以说是毫无概念,甚至很多营销大号也在误导人民群众,用粗糙的示意图来概括罩杯:男生想象中的罩杯尺寸和实际罩杯对比图片而盖得排行想说:一切抛开底围谈罩杯的,都是耍流氓!那么胸部的绝对体积,到底应该怎么看呢?首先,给男士们补一下基础知识,为了让你们能够心中有数,请耐心阅读。
女生的内衣尺码由两部分组成:1.底围,也称下胸围;2.罩杯。
例如,柳岩的尺码是75E,75代表的是柳岩的底围,E则是她的罩杯。
底围是什么?平时我们最关心的三围中,胸围——指的是上胸围,如下图左侧:平行于地面,绕体一周(包括乳头)的长度;而底围(下胸围)如下图右侧所示:于胸部下方结界位置,平行绕体一周的长度。
上下胸围都可以用厘米或者英寸量(注:1 英寸 =2.54 厘米)。
胸围测量需要裸体,但是为了和谐,这里采用的是穿有内衣的图示历史上的bra是欧洲人发明的,因此是先有英寸码,才有厘米码,为了换算方便,我们这里均用厘米码来说明——包括中国,日本,亚洲各国,以及欧洲大陆。
前面说到内衣尺码组成的第一部分——底围,代表着下胸围的长度,下胸围四舍五入到最近的5的倍数,就是底围的尺码。
柳岩的底围是75,那她的下胸围也许在72~78之间,具体是多少,我们不得而知。
以上分界线只是建议的一个起点;卡在正中间的应该试上下两个尺码(比如说72,73左右的应该70和75都试)。
注意,底围那条围带因为需要承托胸部重量,因此会采取弹性面料,围带的平铺长度一定会小于尺码的数字。
比如说底围70的bra,平铺长度不会是70厘米,而是60-65厘米左右,同尺寸而不同品牌的款式中,平铺长度的差异也反映了不同面料的弹性区别。
什么是罩杯?终于到了激动人心的罩杯了。
直入正题,bra尺码的字母ABCD代表了上下胸围的差,即上胸围减去下胸围后得到的值,这个值落在以下哪个区间,就代表是什么罩杯。
计算围差使用的下胸围数字,是在四舍五入之前的测量数字:比如说上胸围88,下胸围72,那么应该是88减去72等于16,而不是88减去70等于18。
我们重点讨论的在于,胸部的绝对体积,是由底围+罩杯共同决定的,罩杯字母只和上下围差有关系,如果只凭罩杯判断胸部大小,那么就会出现直男想象中的:天啊,65E一定是超大超大的巨胸吧?!比如下图: 或者对A杯的曲解: 而实际上,不同底围的D杯如下图:从左至右,分别是65D、70D、75D、80D、85D,全部都是D杯!但大小却相差很大,并不是同一个D杯缝在了不同长短的围带上!很多人误以为罩杯表示的是碗口的周长,最左侧的65D,通常都被冤枉成B杯,而一个65D和90A在绝对体积上几乎相差无几,80D也要比65G宏伟很多很多,所以说没有底围参照的罩杯字母毫无意义,单凭字母根本无法代表乳房的绝对体积。
小底围大杯的女生们因为穿上衣服后与平胸无异,就质疑自己的尺寸,认为自己不是巨乳就肯定不是大杯,在选购内衣时被不专业的BA误导,永远买小穿错。
对罩杯有错误认知的女生,还非常容易被丰胸广告牵着鼻子走,广告里经常说:从B杯升到E杯啦!做梦都想变大的女孩们就会立马被吸引,“罩杯涨了这么多,胸一定很大”,再次强调:抛开底围谈罩杯都是耍流氓,B杯升到E杯,也许根本没什么卵用。
最后,女生弄清楚胸部大小的意义并不在于“大就是好”,胸大胸小只要健康就没什么好自卑纠结的,美与自信并不体现在胸上,盖得排行希望大家选对自己的尺码,胸部的健康才是王道。
女人的胸要变成什么样才能叫好看女人的胸部是一个身体器官,体现了哺乳动物的性感和独特的女性美。
在当代社会,随着文明的发展和服装的变化,女性胸部的“美”效应受到高度重视,成为女性美的必要条件。
每个女士都希望有对丰满和富于弹性的乳房。
使之构成女士特有的流畅、圆润、优美的线条美。
古希腊艺术家雕刻的裸体女士和文艺复兴期间欧洲画家创作的动人女神中都突出动人的乳房。
做为当代女士应对本身乳房加深了解认识。
懂得乳房美的严重性,及怎么护理保持乳房美的形态等等。
我们要看见乳房的形态美。
什么样的乳房称得上满意的乳房呢?1、丰满、匀称、柔韧而富有弹牲;2、乳房地方较高,在第二至第六肋间,乳头位于第四肋间;3、两乳头的间隔大于2O厘米,乳房基底面直径为10-12厘米,乳轴(由基底面到乳头的高度)为5-6厘米;4、形状挺拔,呈半球形。
通常按乳轴高度与基底间直径比例尺寸将乳房分为三种类型。
1、碗型:乳轴度为2-3cm,小于乳房基底直径的1/2。
属于比较平坦的乳房。
2、半球型:乳轴高度为3-5cm,约为乳房基底直径的1/2。
3、圆锥型:乳轴高度在6cm以上,大于乳房基底直径的1/2。