[英]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.