文章文字替换(替换内容不影响Html)

/// <summary>  
    /// 文章特定词替换  
    /// </summary>  
    /// <param name="str">要进行替换的文章</param>  
    /// <param name="oldPword">老字符串</param>  
    /// <param name="newPword">新字符串</param>  
    /// <returns></returns>  
    public string Replace(string str, string oldPword, string newPword)  
    {  
        this.Response.Write(str + "<br />");  
        //分组  
        string[] arr = str.Split('<', '>');  
        //补充完整  
        for (int k = 0; k < arr.Length; k++)  
        {  
            if (arr[k].IndexOf("title=\"") != -1 || arr[k].IndexOf("alt=\"") != -1 || arr[k] == "/a")  
            {  
                arr[k] = "<" + arr[k] + ">";  
            }  
        }  
 
        //判断,进行合理替换  
        for (int i = 0; i < arr.Length; i++)  
        {  
            if (arr[i].IndexOf("title=\"") == -1 && arr[i].IndexOf("alt=\"") == -1 && arr[i].IndexOf("a href=\"") == -1)  
            {  
                string pattern = oldPword;  
 
                System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase);   
                arr[i] = reg.Replace(arr[i], newPword);  
 
            }  
            //不破坏原有链接,不保留原有链接可以删掉  
            else if (arr[i].IndexOf("a href=\"") != -1)  
            {  
                i++;  
            }  
        }  
 
        string newstr = "";  
 
        //重新组合  
        for (int k = 0; k < arr.Length; k++)  
        {  
            newstr = newstr + arr[k];  
        }  
 
        return newstr;  
    } 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/miaoqi2008/archive/2009/08/04/4408347.aspx

posted @ 2009-08-04 18:05  M.JQ  阅读(1243)  评论(0)    收藏  举报