我是用Word编辑器录入内容进数据库,读取数据的时候用DataList显示,但是只想截取128个字符,不过在截取的时候由于录入时使用了Word编辑器,有很多的格式字符串,我只想截取内容字符串,请问怎么处理。

解决方案 »

  1.   

    在查出来结果中用 SubString(0, 128); 不可以吗?
      

  2.   

    能不能详细一些怎么用正则的?
    比如下面是一个数据库的数据<div align="left"><b><span style="color: red; font-size: 18pt">一号轮防护打开</span></b></div>
    <div align="left"><b><span style="color: lightgrey; font-size: 16pt">1ST WHEEL GUARD OPEN</span></b></div>
    <div align="left"><span style="font-size: 16pt">&nbsp;&nbsp;&nbsp;&nbsp; </span></div>
    <div align="left"><span style="font-size: 16pt">可按如下方法诊断:</span></div>
    <div align="left"><span style="font-size: 16pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></div>
    <div align="left"><span style="font-size: 15pt">1、检查一轮防护是否正常.</span></div>
    <div align="left"><span style="font-size: 15pt">2、检查防护开关(2S212)是否接好.</span></div>
    <div align="left"><span style="font-size: 15pt">3、检查10号板的30脚是否有输入。</span></div>
    <div align="left"><span style="font-size: 15pt">4、相关图纸编号:</span><span style="font-size: 16pt">http://</span><span style="font-size: 15pt">1207001</span></div>我只想截取格式之外的内容字符串
      

  3.   

    string s = @"<div align=""left""><b><span style=""color: red; font-size: 18pt"">一号轮防护打开</span></b></div><div align=""left""><b><span style=""color: lightgrey; font-size: 16pt"">1ST WHEEL GUARD OPEN</span></b></div><div align=""left""><span style=""font-size: 16pt"">&nbsp;&nbsp;&nbsp;&nbsp; </span></div>";
                Regex r = new Regex(">[^<]+<");
                MatchCollection mc = Regex.Matches( s, ">[^<]+<");
                
                foreach( var t in mc)
                {
                    Console.WriteLine(t.ToString());
                }
      

  4.   

    正则该下
    MatchCollection mc = Regex.Matches(s, "(?<=>)[^<]+(?=<)");
      

  5.   

    刚刚写的有点问题 regex多余了
    string s = @"<div align=""left""><b><span style=""color: red; font-size: 18pt"">一号轮防护打开</span></b></div><div align=""left""><b><span style=""color: lightgrey; font-size: 16pt"">1ST WHEEL GUARD OPEN</span></b></div><div align=""left""><span style=""font-size: 16pt"">&nbsp;&nbsp;&nbsp;&nbsp; </span></div>";
               
                MatchCollection mc = Regex.Matches(s, "(?<=>)[^<]+(?=<)");
                
                foreach( var t in mc)
                {
                    Console.WriteLine(t.ToString());
                }
      

  6.   

    从数据库读取出来是有数据的,刚想着可以在存储的时候可以去掉格式,但是有的地方又需要格式。保存到数据库如果保留Word格式的话,截取字符串就不知道怎么只截取内容字符串?请高手指点!
      

  7.   

    上面substring是硬方法,你有需要把格式去掉,下面用regx,你又需要一些固定的格式,除非你需要留下来的格式可以提出来,然后正则把它匹配起,否则无解
      

  8.   

    简单,
    1,你需要写一个去掉字符中的html代码的方法,
    2,然后在无html字符中,截取你想要多少个字符的方法。
             /// <summary>
            /// 去掉html字符
             /// </summary>
            /// <param name="str">字符串</param>
            /// <returns></returns>
            public static string NoHtml(string str)
            {
                Regex re = new Regex("<(.[^>]*)>");
                str = re.Replace(str, "");
                return str;
            }
            /// <summary>
            /// 截取字符串
             /// </summary>
            /// <param name="inputString">字符串参数</param>
            /// <param name="len">截取长度</param>
            /// <param name="tail">超过长度自定义的尾巴</param>
            /// <returns></returns>
            public static string CutStr(string inputString, int len, string tail)
            {
                ASCIIEncoding ascii = new ASCIIEncoding();
                int tempLen = 0;
                string tempString = "";
                byte[] s = ascii.GetBytes(inputString);
                for (int i = 0; i < s.Length; i++)
                {
                    if ((int)s[i] == 63)
                    {
                        tempLen += 2;
                    }
                    else
                    {
                        tempLen += 1;
                    }                try
                    {
                        tempString += inputString.Substring(i, 1);
                    }
                    catch
                    {
                        break;
                    }                if (tempLen > len)
                        break;
                }
                //如果截过则加上设置的尾巴
                  byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
                if (mybyte.Length > len)
                    tempString += tail;
                return tempString;
            }
       
      

  9.   

    写个方法将html的跟格式的都去除咯