求助,本人想在如下一大串数据中:
$FYZT,8.91,-4.10,115.06,0.38,0.71,0.41,-0.16,-0.07,0.99,1.01,-205.88,-329.64,366.75*5C\r\n$FYZT,9.00,-4.15,115.06,-0.14,-0.06,0.05,-0.16,-0.07,0.99,1.01,-204.50,-330.01,368.88*93\r\n$FYZT,8.97,-4.08,115.10,-0.00,-0.02,-0.07,-0.16,-0.07,0.99,1.01,-202.38,-330.01,363.88*C4\r\n$FYZT,8.98,-4.10,115.13,0.05,0.26,0.92,-0.16,-0.07,0.99,1.01,-200.88,-330.86,363.13*4D\r\n$FYZT,8.96,-4.13,115.16,0.19,0.32,-0.09,-0.16,-0.07,0.99,1.01,-206.13,-324.61,364.13*75\r\n$FYZT,9.03,-4.11,115.06,0.11,0.22,-0.45,-0.16,-0.07,0.99,1.01,-204.75,-330.13,367.38*68\r\n"
提取出一个数组长度为13的字符串数组,该数组以$FYZT后一个数开始,\r\n前结束,请问我该怎么弄?小弟在此谢过了!

解决方案 »

  1.   

    收代码,代码返回的是一个list,list中的每组数据都是符合你条件的一组数据,因为不确定你是要第一个,还是所有符合条件的数据都要,所以我把所有符合条件的数据都取出来了,放在list中,你要做二次处理也很方便。
            public List<string[]> Find13(string raw)
            {
                string[] rawArr = System.Text.RegularExpressions.Regex.Split(raw, @"\r\n");
                List<string[]> list = new List<string[]>();            foreach (string text in rawArr)
                {
                    string[] splitArr = System.Text.RegularExpressions.Regex.Split(text, ",");
                    if (splitArr.Length.Equals(14) && splitArr[0].Equals("$FYZT"))
                    {
                        string[] findArr = new string[13];                    Array.Copy(splitArr, 1, findArr, 0, 13);                    list.Add(findArr);
                    }
                }            return list;
            }