我有一些GPS接收器的数据,但有些数据被额外的字符损坏了。我想提取时间戳(第一个字段)以及$GPGGA
和$GPVTG
的数据。
更清楚的是,这是我在单元格数组中的数据样本:
'1458937887.70818 $GPGGA,200228.90,3555.3269,N,15552.9641,A*25'
'1458937887.709668 $GPVTG,56.740,T,56.740,M,0.069,N,0.127,K,D*2D'
'1458937887.712022 ªDe¾,…´apö$™°%=HfSrîU¾Õ½ôAqö‚>1ÀàHqgu$GPGGA,200229.00,3555.3269,N,15552.9641,C*2B'
'1458937887.714071 $GPVTG,286.847,T,286.847,M,0.028,N,0.051,K,D*28'
正如您所看到的,这里的问题出现在第三行,其中时间戳和数据之间出现了一些奇怪的字符。
另一个问题是有时候这第三行被分成两行,如下所示:
'1458937887.712022 ªDe¾,…´apö$™°'
'%=HfSrîU¾Õ½ôAqö‚>1ÀàHqgu$GPGGA,200229.00,3555.3269,N,15552.9641,D*24'
正在非常努力地使用regexp
。
总之,我想将第三行(在两种情况下)格式化为:
'1458937887.712022 $GPGGA,200229.00,3555.3269,N,15552.9641,D*2R'
更新
感谢@excaza,这解决了第一个问题(删除垃圾):
regexprep(str, '(?<=\d\s)(.*)(?=\$GPGGA)', '')
关于第二个问题,@ Suever的问题通过查看数据的格式给了我一个想法。从.txt文件读取数据时是否可以解决它?将分隔符定义为*
后跟两个字符和\n
之类的东西,因为所有数据包都以此模式结束?