第一个问题:替换以 <!DOCTYPE 开头,以 > 结尾的所有字符为空,要忽略大小写第二个问题: 
见如下字符串,注意红色部分:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />如果有以 <meta 开头,以 > 结尾,且包含了 charset 的字符串,则替换 charset= 后面的 gb2312 为utf-8其中,gb2312 是变化的,有可能是其它字符集,有可能左右还会有双引号。在线等,很急。

解决方案 »

  1.   

    1.            string input = "lkjsdfieflajskdfasdfasdf <!DOCTYPE 开头,以 > asdfeasdfasdf fasdfadsf";
                string str = Regex.Replace(input, "<!DOCTYPE.*?>", "", RegexOptions.IgnoreCase);
    2.            input = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" /> ";
                str = Regex.Replace(input, "(<meta.*?charset=\"?).*?(\")", "$1utf-8$2", RegexOptions.IgnoreCase);
      

  2.   


            private void FormMain_Load(object sender, EventArgs e)
            {
                string content = "以<!DOCTYPE 开头,以 > 结尾\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" /> ";            //替换<!DOCTYPE 开头,以 > 结束的为空白
                Regex regex = new Regex("<!DOCTYPE[^>]+>", RegexOptions.IgnoreCase);
                content = regex.Replace(content, "");            //替换charset
                regex = new Regex("<meta[^>]+>", RegexOptions.IgnoreCase);
                content = regex.Replace(content, ReplaceCharset);            Console.WriteLine(content);
            }        private string ReplaceCharset(Match match)
            {
                Regex regex = new Regex("charset=[^\"]+\"", RegexOptions.IgnoreCase);
                return regex.Replace(match.Value, "charset=utf8\"");
            }输出:以 结尾
    <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> 
      

  3.   

    第二个问题:
    见如下字符串,注意红色部分:
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />如果有以 <meta 开头,以 > 结尾,且包含了 charset 的字符串,则替换 charset= 后面的 gb2312 为utf-8 
    这个不需要正则就能做到。
    string html="<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />";
    string result=html.Replace("charset=gb2312","charset=utf-8");
      

  4.   

    1、
    string result=Regex.Replace("你的字符串","(?i)<!doctype[^>]*>","");2、
    string result=Regex.Replace("你的字符串","(?i)(?<=meta[^>]*charset=)[^\\s>]+(?=\"[^>]*>)","utf-8");
      

  5.   

    帮一楼补充一下
     string input = "lkjsdfieflajskdfasdfasdf <!DOCTYPE 开头,以 > asdfeasdfasdf fasdfadsf";
                string str = Regex.Replace(input, "<!DOCTYPE[^>]*?>", "", RegexOptions.IgnoreCase);
    input = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" /> ";
                str = Regex.Replace(input, "(<meta[\\s\\S]*charset=).*(\"\\s/>)", "$1utf-8$2", RegexOptions.IgnoreCase);
      

  6.   

    to min_jie大侠:    用了你写的正则,完全符合要求,十分感谢。    还有一个问题,需要你的帮忙。
        如何判断一段文本里是否包含 <开头必需有字符 这里是其它字符> 这种类型的字串?
        如果包含就返回true,否则返回false,请大侠再次赐教。
        如:<aa bb="aa">,<style id="a">包含这些就返回true。    换一种说法,就是判断一段文本里是否包含了html代码,可以用正则做到吗?
      

  7.   

    if(Regex.IsMatch("你的字符串","<[^>]*>"))
    {
     //TRUE
    }