簡體   English   中英

如何在Notepad ++中搜索和替換為正則表達式

[英]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 ++中執行的操作

  1. 使用Ctrl + H打開“ 替換”彈出窗口
  2. Search mode部分打勾 Regular expression
  3. 搜索此模式: .*?"mLongitude":(\\d+(?:\\.\\d+)?).*?"mLatitude":(\\d+(?:\\.\\d+)).*
  4. 匹配的字符串替換\\1|\\2
  5. 單擊全部替換 ;)

這個怎么運作:

我的答案中的正則表達式模式從每行中提取經度和緯度的值並將整行替換為

  • 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM