[英]How to search and replace with regex in Notepad++
我有一个txt文件,其中有些行包含GPS数据,我需要将其缩短。
所以我有
5|{"mResults":0.0|0.0|"mProvider":"fused"|"mDistance":0.0|"mTime":1395061255413|"mAltitude":161.0|"mLongitude":29.0459152|"mLon2":0.0|"mLon1":0.0|"mLatitude":41.0854122|"mLat1":0.0|"mLat2":0.0|"mInitialBearing":0.0|"mHasSpeed":true|"mHasBearing":false|"mHasAltitude":true|"mHasAccuracy":true|"mAccuracy":15.0|"mSpeed":0.425211|"mBearing":0.0}|1395061255413
而且我只需要提取坐标,因此将其转换为:
29.0459152|41.0854122
原来我需要这个:
GPS|29.0459152|41.0854122|0|1395061255413
请注意,我需要:
GPS|
在前面, |0
在最后。 |1395061255413
如何使用Notepad ++做到这一点?
谢谢你的帮助 !
这是您可以在Notepad ++中执行的操作 :
Search mode
部分打勾 Regular expression
.*?"mLongitude":(\\d+(?:\\.\\d+)?).*?"mLatitude":(\\d+(?:\\.\\d+)).*
\\1|\\2
这个怎么运作:
我的答案中的正则表达式模式从每行中提取经度和纬度的值 , 并将整行替换为 :
mLongitude
值, |
”和 mLatitude
值。 您想更详细地说明此模式吗,请在regex101上查看此固定链接 。
编辑:
要包括您要参考的时间戳 ,您需要使用以下正则表达式:
.*?"mLongitude":(\d+(?:\.\d+)?).*?"mLatitude":(\d+(?:\.\d+)).*\|(\d+)
然后,您只需要将替换字符串的格式更改为此:
GPS|\1|\2|0|\3
您可能已经知道了,但让我们仍然写下完整的可用解决方案;)
我希望这有帮助!
我这样解决了我的问题:
搜索:
.*?"mTime":(\d+(?:\.\d+)?).*?"mLongitude":(\d+(?:\.\d+)).*?"mLatitude":(\d+(?:\.\d+)).*
替换:
GPS|\2|\3|0|\1
但这是因为相同的数据(时间戳)也位于字符串内。 因此,这不是从结尾提取时间戳,而是从字符串的中间提取时间戳。
因此,如果@ccjmne编辑从末尾提取的答案,我将接受该答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.