首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在notepad++坐标下将字符填充到不同长度的列上

问如何在notepad++坐标下将字符填充到不同长度的列上
EN

Stack Overflow用户
提问于 2020-03-08 05:12:42
回答 2查看 117关注 0票数 1

我有这样的坐标:

代码语言:javascript
复制
28.62834,41.11797,0  // every line must be at this lenght
28.62881,41.11737,0
28.6289,41.11725,0   // must add 0 (zero) to 28.6289 , it should look like this: 28.62890
28.62898,41.11716,0
28.629,41.11688,0    // must add two 0 (zero) to 28.629 , it should look like this: 28.62900
28.62935,41.1167,0
28.62978,41.11615,0
28.62996,41.11593,0
28.630,41.115,0      // must add two 0 (zero) to 28.630 , it should look like this: 28.63000 and must add two 0 (zero) to 41.115 , it should look like this: 41.11500,

我想将0(零)添加到纬度和经度值中,使每行长度相同。纬度和经度必须在圆点后面有5数字。例子: 28.XXXXX,41.XXXXX

我想要的:

代码语言:javascript
复制
28.62834,41.11797,0
28.62881,41.11737,0
28.62890,41.11725,0
28.62898,41.11716,0
28.62900,41.11688,0
28.62935,41.11670,0
28.62978,41.11615,0
28.62996,41.11593,0
28.63000,41.11500,0

在notepad++中有一种简单的方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-08 10:53:00

两步。

首先,在每一个太短的数字后面加零。用\b(\d\d\.\d{0,4}),进行正则表达式替换为${1}00000,。

第二,移除多余的零。用\b(\d\d\.\d{5})0+,进行正则表达式替换为$1,。

解释:

第一个正则表达式找到两个数字,后面跟着一个点,然后是零到四个移动数字,最后是一个逗号。没有必要在圆点后面找五位数。替换确保每个数字至少有五位数。

第二个正则表达式类似于第一个正则表达式,但它在点之后找到了5位数的数字,然后找到了一些零,最后找到了逗号。

这与这个答案中的基本相同,但是regexs在右边添加/移除零。

票数 2
EN

Stack Overflow用户

发布于 2020-03-08 11:13:04

您可以在PythonScript插件中运行python脚本。

如果尚未安装,请遵循以下指南

创建一个脚本(Plugins >> PythonScript >>新脚本)

复制此代码并保存文件(例如,format.py):

代码语言:javascript
复制
import re
def format(match):
    nums = match.group(1).split(',')
    return "%7.5f,%7.5f;%d" % (float(nums[0]), float(nums[1]), int(nums[2]) )
editor.rereplace('^(.+)$', format)
  • 打开要更改的文件
  • 运行脚本(Plugins >> PythonScript >>脚本>>格式)
  • 完成

假设 28.629350,41.1167,0必须是28.62935,41.11670,0

给定示例的结果:

​

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60584654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档