本帖最后由 dovefay 于 2009-11-23 09:36:30 编辑

解决方案 »

  1.   

            string s = "iphone;motorala;LG;nokia;samsung;sony;2009-11-11_2010-12-12";
            string[] arr = s.Split(new char[] { ';' });
            string[] date = arr[arr.Length - 1].Split(new char[] { '_' });
            Response.Write(date[0] + "||" + date[1]);试试这个,也就是多截一次
      

  2.   

    string[] array = Regex.Split(input, @"[;_](?=\d)");
      

  3.   

    如 果 前 面 的 字 符 串 中 没 有 
    "sony;1nokia;"这 样 的 格 式 .空 军 的 正 则 完 全 可 以 用 ..
    如 果 有 的 话 ,就 会 把 1nokia也 提 出 来 ..
    可 以 改 成 :string[] array = Regex.Split(input, @"[;_](?=\d{4}-\d{1,2}-\d{1,2})");
      

  4.   


    string strContent = "iphone;motorala;LG;nokia;samsung;sony;2009-11-11_2010-12-12";
                    Regex re = new Regex(@"(?<info>.*;)(?<Date1>(\d+-){2}\d+).*?(?=\d)(?<Date2>(\d+-){2}\d+)");
                    string string1 = "";
                    string string2 = "";
                    string string3 = "";
                    if (re.IsMatch(strContent))
                    {
                        Match m = re.Match(strContent);
                        string1 = m.Groups["info"].Value.Trim();
                        string2 = m.Groups["Date1"].Value.Trim();
                        string3 = m.Groups["Date2"].Value.Trim();
                    }