如何用动态数量的空格替换子字符串
How to substitute substring with dynamic number of spaces
我想使用 Notepad++ 将一列数字的小数位替换为等量的空格。
例如,这个输入(竖条是故意的)
| 1.23|
| 45.678|
|901.2345|
会变成
| 1 |
| 45 |
|901 |
基本上,点和小数位已被动态数量的空格替换:第一行 2+1 个空格,第二行 3+1 个,第三行 4+1 个。
我看过一些不同的帖子,例如 this,并尝试过类似的东西:用 \s+
替换 \.\d+
,没有成功。
- Ctrl+H
- 查找内容:
\.(\d)?(\d)?(\d)?(\d)?
- 替换为:
(?1 )(?2 )(?3 )(?4 )
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
\. # a dot
(\d)? # optional group 1, 1 digit
(\d)? # optional group 2, 1 digit
(\d)? # optional group 3, 1 digit
(\d)? # optional group 4, 1 digit
and so on
替换:
# a space
(?1 ) # if group 1 exists, add a space
(?2 ) # if group 2 exists, add a space
(?3 ) # if group 3 exists, add a space
(?4 ) # if group 4 exists, add a space
and so on
屏幕截图(之前):
截图(之后):
您可以在 PythonScript 插件中 运行 python 脚本。
以下内容适用于点后的任意数字。
如果还没有安装,按照这个guide
- 创建脚本(插件 >> PythonScript >> 新脚本)
- 复制此代码并保存文件(例如format.py):
import re
def format(match):
return " " * len(match.group(1))
editor.rereplace('(\.\d+)', format)
- 打开你要修改的文件
- 运行 脚本
Plugins >> PythonScript >> Scripts >> format
- 完成
屏幕截图(之前):
截图(后):
如果我理解得很好,请在记事本++中试试这个,
查找:^([ |\d]*)\.|\G\d{1,1}
替换为:
在 $1 之后有一个 space
现在可以使用 Notepad++
Updated answer
有图有证
我想使用 Notepad++ 将一列数字的小数位替换为等量的空格。
例如,这个输入(竖条是故意的)
| 1.23|
| 45.678|
|901.2345|
会变成
| 1 |
| 45 |
|901 |
基本上,点和小数位已被动态数量的空格替换:第一行 2+1 个空格,第二行 3+1 个,第三行 4+1 个。
我看过一些不同的帖子,例如 this,并尝试过类似的东西:用 \s+
替换 \.\d+
,没有成功。
- Ctrl+H
- 查找内容:
\.(\d)?(\d)?(\d)?(\d)?
- 替换为:
(?1 )(?2 )(?3 )(?4 )
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
\. # a dot
(\d)? # optional group 1, 1 digit
(\d)? # optional group 2, 1 digit
(\d)? # optional group 3, 1 digit
(\d)? # optional group 4, 1 digit
and so on
替换:
# a space
(?1 ) # if group 1 exists, add a space
(?2 ) # if group 2 exists, add a space
(?3 ) # if group 3 exists, add a space
(?4 ) # if group 4 exists, add a space
and so on
屏幕截图(之前):
截图(之后):
您可以在 PythonScript 插件中 运行 python 脚本。
以下内容适用于点后的任意数字。
如果还没有安装,按照这个guide
- 创建脚本(插件 >> PythonScript >> 新脚本)
- 复制此代码并保存文件(例如format.py):
import re
def format(match):
return " " * len(match.group(1))
editor.rereplace('(\.\d+)', format)
- 打开你要修改的文件
- 运行 脚本
Plugins >> PythonScript >> Scripts >> format
- 完成
屏幕截图(之前):
截图(后):
如果我理解得很好,请在记事本++中试试这个,
查找:^([ |\d]*)\.|\G\d{1,1}
替换为:
在 $1 之后有一个 space
现在可以使用 Notepad++
Updated answer
有图有证