$GPGGA,033859.000,2500.1390,N,12125.2289,E,1,07,1.2,45.6,M,15.1,M,,0000*66$GPRMC,033852.000,A,2500.1390,N,12125.2289,E,0.00,,100610,,,A*71!AIVDM,1,1,,B,19NS7Sp02wo?HETKA2K6mUM20<L=,0*27
如何使用正则表达式,将上文中的字符串分成一个数组,结果为:
$GPGGA,033859.000,2500.1390,N,12125.2289,E,1,07,1.2,45.6,M,15.1,M,,0000*66
$GPRMC,033852.000,A,2500.1390,N,12125.2289,E,0.00,,100610,,,A*71
!AIVDM,1,1,,B,19NS7Sp02wo?HETKA2K6mUM20<L=,0*27
以上三条谢谢

解决方案 »

  1.   


    string pstr = @"(\$|\!).*?\*\d{2}";
      

  2.   

                string str = "$GPGGA,033859.000,2500.1390,N,12125.2289,E,1,07,1.2,45.6,M,15.1,M,,0000*66$GPRMC,033852.000,A,2500.1390,N,12125.2289,E,0.00,,100610,,,A*71!AIVDM,1,1,,B,19NS7Sp02wo?HETKA2K6mUM20<L=,0*27";            Regex reg = new Regex(@"(\$|!).*?\*(\d+)");            MatchCollection mc = reg.Matches(str);            foreach (Match m in mc)
                {
                    Console.WriteLine(m.Groups[0].ToString());
                }            /*
                $GPGGA,033859.000,2500.1390,N,12125.2289,E,1,07,1.2,45.6,M,15.1,M,,0000*66
                $GPRMC,033852.000,A,2500.1390,N,12125.2289,E,0.00,,100610,,,A*71
                !AIVDM,1,1,,B,19NS7Sp02wo?HETKA2K6mUM20<L=,0*27
                */
      

  3.   

    //没必要使用正则吧
                string str = "1$1$1$1";
                string[] stri = str.Split('$');            foreach (string s in stri)
                {
                    Response.Write("$"+s+"<br>");
                }