| 发表于:2007-02-09 21:13:47 楼主 |
$gpgsv,3,1,11,03,03,111,00,04,15,270,00,06,01,010,00,13,06,292,00*74 $gpgsv,3,2,11,14,25,170,00,16,57,208,39,18,67,296,40,19,40,246,00*74 $gpgsv,3,3,11,22,42,067,42,24,14,311,43,27,05,244,00,,,,*4d 我希望写一条正则,用组的方式获取上面没列的数据。格式如下: $gpgsv, //数据头 3, //一共有几条 1, //当前是第几条 11, //一共包含11组数据 然后开始,每四个逗号一组 03,03,111,00, 这是一组。分别表示:卫星号,仰角,方位角,信噪比, 每行最后一组后面的“,”就没有了。取而代之的是“*” *后面是校验 我现在自己写的正则是这样的。可是只能匹配到最后一组。很奇怪。谁能帮我修改一下也好。 \$gpgsv,(? <linecount> \d+),(? <currentline> \d+),(? <starmax> \d+),((? <prn1> \d{0,2}),(? <elevation1> \d{0,2}),(? <azimuth1> \d{0,3}),(? <snr1> \d{0,2}),*)*((? <prn2> \d{0,2}),(? <elevation2> \d{0,2}),(? <azimuth2> \d{0,3}),(? <snr2> \d{0,2}),*)*((? <prn3> \d{0,2}),(? <elevation3> \d{0,2}),(? <azimuth3> \d{0,3}),(? <snr3> \d{0,2}),*)*((? <prn4> \d{0,2}),(? <elevation4> \d{0,2}),(? <azimuth4> \d{0,3}),(? <snr4> \d{0,2}),*)*\*[\d\w]+ |
|
|
|
|