文本(编码格式ANSI)内容如下:0会客火星某年某月某日,于火星见面
1323655199132365879913236536390旅游西藏探究活佛转世的奥秘1323914399132391799913236537570新建事件地球吃饭133723799913372415991337148040
其中是六个1,是六个2,大侠们就先说说怎么以分割吧

解决方案 »

  1.   

    using System.Text.RegularExpressions;
    string str="aaajsbbbjsccc";
    string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);
    foreach (string i in sArray) Response.Write(i.ToString() + "<br>");
    输出结果:
    aaa
    bbb
    ccc
      

  2.   

    谢谢以上回答,关键是针对我发的那种文本内容该怎么分割呢,具体再说一下,文本中的是ASCII码值的2,是ASCII码值的1
      

  3.   

    我说的不够明白吗?好吧,那这样说吧,有以下一段字符串:
    0新建事件地球吃饭133723799913372415991337148040其中的是ASCII码值1,现在我需要以分割这段字符串,该怎么做呢?大家都想想办法啊,谢谢了
      

  4.   

    Regex.Split建立数组是可以,只是在数据比较少的情况下好使,一般用于字段里的字符分隔。如果文件很大,分隔时建议按分隔符格式化文本,或者导入到数据库。
      

  5.   


    static void Main(string[] args)
    {
        var list = new List<string>();
        string text = @"0会客火星某年某月某日,于火星见面1323655199132365879913236536390旅游西藏探究活佛转世的奥1323914399132391799913236537570新建事件地球吃饭133723799913372415991337148040";
        Console.WriteLine(text);
        var indexes = Regex.Matches(text, @"0(?![^\w\s\S])", RegexOptions.IgnoreCase).Cast<Match>().Select(match => match.Index).ToArray();
        int i = 0;
        for (; i < indexes.Length - 1; i++)
        {
            list.Add(text.Substring(indexes[i], indexes[i + 1] - indexes[i]));
        }
        list.Add(text.Substring(indexes[i], text.Length - indexes[i]));
        foreach (var s in list)
        {
            Console.WriteLine(s);
        }
        Console.ReadKey();
    }
    PS:你给的文字,为什么复制到 Notepad 里面会有很多隐藏的全角空白符啊?!
      

  6.   

    替换成换行符替换成TAB 不可以么?
      

  7.   

    12楼的代码运行了没有错,但是结果不是我想要的结果啊,我再简要的说一下我的目的,我需要将以下内容:
    0新建事件地球吃饭133723799913372415991337148040以进行字符串分割,其中  这个是ASCII码值1,老大们再帮忙看看啊
      

  8.   


    // 把 @"0(?![^\w\s\S])" 改成 @"0[^x00-xff]"
      

  9.   


        class Program
        {
            static void Main(string[] args)
            {
                string str = "0会客火星某年某月某日,于火星见面\r\n1323655199132365879913236536390旅游西藏探究活佛转世的奥秘1323914399132391799913236537570新建事件地球吃饭133723799913372415991337148040";
                string splitStr = ((char)2).ToString() + ((char)2).ToString() + ((char)2).ToString() + ((char)2).ToString() + ((char)2).ToString() + ((char)2).ToString();
                string[] result = str.Split(new string[] { splitStr }, StringSplitOptions.None);
            }
        }
      

  10.   

    看了楼主的发帖,楼主的语文老师一定很伤心.
    另外这个分割的规则还不是很清晰是按stx结尾分割呢,还是按6个soh + 一个stx结尾来算一组呢
      

  11.   

    你把你的那串111222都替换掉吧:string str="
    0会客火星某年某月某日,于火星见面
    1323655199132365879913236536390旅游西藏探究活佛转世的奥秘1323914399132391799913236537570新建事件地球吃饭133723799913372415991337148040d";
    string pat = null;
                char asc_1 = (char) 1;
                char asc_2 = (char) 2;
                for (int i = 0; i < 3; ++i)pat += asc_1;
                for (int i = 0; i < 3; ++i)pat += asc_2;
    str = str.Replace(pat,null);
      

  12.   

    我说的不够明白吗?好吧,那这样说吧,有以下一段字符串:
    0新建事件地球吃饭133723799913372415991337148040其中的是ASCII码值1,现在我需要以分割这段字符串,该怎么做呢?大家都想想办法啊,谢谢了应该是ASCII码为1的那个字符………………我说楼主你就不会用个别的字符替代一下么,分明知道显示不出来。
      

  13.   


    刚试验了一下,数字的长度没有问题了,但是打印出来显示不对啊,第一条记录没有问题,第二条和第三条记录没有分割开。
    文本中的每条记录以STX结尾,SOH用于分割每条记录中的字段,我这样说,明白吗?
      

  14.   

    我这里试验出来好像没有问题么 最后result4条记录 其中一条为空,你看看是不是换行的关系
      

  15.   

    恩,谢谢!没有问题,麻烦再问下:分割后怎么显示到listview里面呢,新手上路请多多指教!
      

  16.   

    谢谢大家!这个问题解决了,谁知道怎么让分割后的内容显示到listview里面啊,对我有用的回答我都会给分的,分数可能不多,希望大家不要嫌弃
      

  17.   

    你的listview是winform的还是wpf的
    wpf的,直接listview.ItemSource=...
    如果是winform的话,只好一行一行的添加喔
    你先说清楚再给你代码
      

  18.   

            
           for(int i = 0 ; i < xxx.Length; i ++) 
                { 
                    ListViewItem item = new ListViewItem(xxx[i]); 
                    listView1.Items.Add(item); 
                }
      

  19.   


    ListViewItem item = new ListViewItem(xxx[i]); 这句报错啦
      

  20.   

    string str="0会客火星某年某月某日,于火星见面
    1323655199132365879913236536390旅游西藏探究活佛转世的奥秘1323914399132391799913236537570新建事件地球吃饭133723799913372415991337148040
    ";
    string split1 = ((char)2).ToString() + ((char)2).ToString() + ((char)2).ToString() + ((char)2).ToString() + ((char)2).ToString() + ((char)2).ToString();
    string[] result1 = str.Split(new string[] { split1 }, StringSplitOptions.None);
    for(int i=0; i<result1.Length;i++){
        string split2 = ((char)1).ToString() + ((char)1).ToString() + ((char)1).ToString() + ((char)1).ToString() + ((char)1).ToString() + ((char)1).ToString();
        string[] result2 = result1.Split(new string[] { split2 }, StringSplitOptions.None);
        for(int j=0; j<result2.Length;j++){
            //此处该怎么让数组里面的内容显示在listview中?正确应该是3行7列
        }
    }
      

  21.   

    listview.ItemSource = result1 ;
      

  22.   

    感觉楼主是不会表示ascii码(1),不是数字1,估计是二进制的0000000100000001000000010000000100000001这种形式