酷络网游
 | 网站首页 | 网游新闻 | 网络游戏 | 电脑游戏 | 电视游戏 | 电子竟技 | 手机游戏 | 美眉专区 | 
>>> 您现在的位置: 酷络网游 >> 网络编程 >> 文章正文
| 最新推荐
| 最新热门
| 相关文章
  • ASP.NET生成静态页面实现

  • ASP.NET 2.0中图片格式的

  • JSP语法—HTML注释

  •  模糊过滤关键字的2种方法


    要过滤特定内容的关键字,如果是精确过滤很好办,直接Replace就能搞定,但一些单词却会因大小写的问题可能不会被过滤,先看一个例子:

    有以下内容:

    Two birds in the tree, They are talking happily,
    what they are talking about,they are talking family.

    现在如果我想要过滤掉所有的"they",要全部替换成"它们",

    如果用Replace的话,只能替换一种情况,即全字匹配"they"。

    但文中的"They"就不能被过滤,所以还是要以一种特殊的方法来实现。

    我用了两个方法来实现关键字的模糊过滤:

    方法一:

    这个方法比较简单,就是进行内容的遍历来匹配过滤的字符,代码如下:

    ///
    /// 过滤关键字
    ///
    /// 待过滤的内容。
    /// 要过滤的关键字。
    /// 要过滤的关键字的替换字符串。
    /// 返回检查后的内容。
    private string FilterKeyWord(string strContent,string strKeyWord,string strNewString)
    {
    for(int i=0;i<=(strContent.Length-strKeyWord.Length);i++)
    {
    // 找到匹配顶。
    if(strContent.Substring(i,strKeyWord.Length).ToUpper()==strKeyWord.ToUpper())
    {
    strContent=strContent.Substring(0,i)+strNewString+strContent.Substring(i+strKeyWord.Length);
    }
    }
    return strContent;
    }

    该方法将会用指定的新字符串替换掉内容中的指定关键字。
    虽然可以实现关键字的过滤,但因为要遍历一遍,所以效率不是很高。


    再来看第二种方法:

    ///
    /// 过滤关键字
    ///
    /// 待过滤的内容。
    /// 要过滤的关键字。
    /// 要过滤的关键字的替换字符串。
    /// 返回过滤后的内容。
    public static StringBuilder FilterKeyWord(StringBuilder strContent,string strKeyWord,string strNewString)
    {
    string ExpressionString=null;
    // 创建要构造正则表达式的字符串。
    for(int i=0;i {
    ExpressionString+="("+strKeyWord.Substring(i,1).ToUpper()+" "+strKeyWord.Substring(i,1).ToLower()+")";
    }

    // 构造要匹配的正则表达式。
    Regex Expression=new Regex(ExpressionString);

    // 在要过滤的内容中查寻匹配。
    Match match=Expression.Match(strContent.ToString(),0,strContent.Length);

    // 替换匹配的内容,直到匹配失败。
    while(match.Success)
    {
    // 替换当前匹配的内容。
    strContent=strContent.Replace(match.Value,strNewString);

    // 继续查寻下一次的匹配。
    match=match.NextMatch();
    }
    return strContent;
    }

    这是用正则表达式来进行匹配,效率相对而言要高了一点点。

    而且用了StringBuilder类,在内存空间上要占用得相对少一些。

    作者:佚名  更新时间:2007-5-16
    本文由酷络网友发表,版权归原作者[ 佚名 ]所有,并不代表酷络本站观点,转载请注明出处和作者。
    抵制不良游戏,拒绝盗版游戏。注意自我保护,谨防受骗上当。适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。
  • 上一篇文章:

  • 下一篇文章:
  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     | Copyright @ 2005-2010 www.kuluo.com All Rights Reserved. 桂ICP证05014479号 酷络站长:踏浪 联系站长:67033171  站长在线
     | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告合作 | | |