c# 如何分割字符串(包含数据时间还有字符)

string str="EMKEMEMM333936C35G4G9I3E2017-09-072017-09-0715500000000";
我希望得出下列结果
string mach="EMKEMEMM333936C35G4G9I3E";
string startTime="2017-09-07";
string endTime ="2017-09-07";
int phone=15500000000;
请问如何分隔呢?

        string str = "EMKEMEMM333936C35G4G9I3E2017-09-072017-09-0715500000000";

        string mach = str.Substring(0, 24);
        string startTime = str.Substring(24, 10);
        string endTime = str.Substring(34, 10);
        long phone = Convert.ToInt64( str.Substring(44, 11));

        System.Diagnostics.Debug.WriteLine(mach);
        System.Diagnostics.Debug.WriteLine(startTime);
        System.Diagnostics.Debug.WriteLine(endTime);
        System.Diagnostics.Debug.WriteLine(phone.ToString());


                    手机号用INT太小了,用LONG 

最好的办法是用正则表达式去匹配

string iphone = str.substring(str.length-11,strlength)

string endTime = str.substring(str.length-21,str.length-11)

string startTime = str.substring(str.length-31,str.length-21)

string mach = str.substring(0,str.length-31)

建议去看看,,string的MSDN ,,substring确实可以实现,,但是功能太单一了,,也就是只对这个题有用,,,如果只为了解决此题的话,还可以,否则建议去查查