如题?我目前是用一个一个字符对比,但效率很低,请大家帮我想一个效率比较高的正值,感谢解决马上给分.主要是为了解决违法关键词,有些人发布 发票,投拍等字眼,全部检测出来,人工审核如: 查找字符串"电脑",输入的是: XXXX电XXX脑XX  ,XX是指中间的空格,我是这样设想,如果是在 电和脑 在20个字以内,都算命中查找到.

解决方案 »

  1.   

    try...Regex reg = new Regex(@"(?s)电(?:(?!脑).){0,20}?脑");
      

  2.   

    Regex reg = new Regex(@"(?s)电(?:(?!脑).){0,20}?脑");
      

  3.   

    直接判断电脑是间的字符长度好像就可以了.
    string img="xxx电xxx脑xxx";
    if(img.substring(img.indexof("电")).substring(0,img.indexof("脑")).lenght<20)
    {}
      

  4.   

    如果数据库还没有建立 可以使用Oracle数据库  支持正则表达式 
      

  5.   

    3楼写的时候想多了,既然用了非贪婪模式,直接这样就可以了
    Regex reg = new Regex(@"(?s)电.{0,20}?脑");
      

  6.   

    ... 违法信息过滤  找 绿坝建议使用win32编程  建立恶意信息词库 定时扫描数据库 把更新信息建个 索引库 只扫描 更新信息