繁体   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