Notepad++ 用零替换指数值
Notepad++ replace exponent values with zero
我使用 notepad++ (7.8.1) 正则表达式 \d+.\d{2}\K\d+ 来更改大文本文件中值的小数点。这需要一些时间并且通常运行良好,但完成后我在导入文件时遇到错误。这是一个大文本文件(对于 excel 来说太大了),有 3 列,制表符分隔。例如266051.07799999998 7617493.20100000035 -15.2008895874023438
事实证明,一些值被写为指数值(例如 -5.992e-06)并且没有转换。
有没有快速的方法将此文本转换为普通 0
- Ctrl+H
- 查找内容:
(-?\d+\.\d+e[+-]?\d+)|\d\.\d\d\K\d+
- 替换为:
(?{1}0:)
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
( # group 1
-? # optional minus sign
\d+ # 1 or more digits
\. # decimal point
\d+ # 1 or more digits
e # exp
[+-]? # optional sign
\d+ # 1 or more digits
) # end group 1
| # OR
\d\.\d\d # a digit, a dot, 2 digits
\K # forget them
\d+ # 1 or more digits
替换:
(?{1} # if group 1 exists, exponantial value
0 # replace with 0
: # else, nothing
) # end conditional
屏幕截图(之前):
截图(之后):
我使用 notepad++ (7.8.1) 正则表达式 \d+.\d{2}\K\d+ 来更改大文本文件中值的小数点。这需要一些时间并且通常运行良好,但完成后我在导入文件时遇到错误。这是一个大文本文件(对于 excel 来说太大了),有 3 列,制表符分隔。例如266051.07799999998 7617493.20100000035 -15.2008895874023438
事实证明,一些值被写为指数值(例如 -5.992e-06)并且没有转换。
有没有快速的方法将此文本转换为普通 0
- Ctrl+H
- 查找内容:
(-?\d+\.\d+e[+-]?\d+)|\d\.\d\d\K\d+
- 替换为:
(?{1}0:)
- 检查 环绕
- 检查 正则表达式
- 全部替换
解释:
( # group 1
-? # optional minus sign
\d+ # 1 or more digits
\. # decimal point
\d+ # 1 or more digits
e # exp
[+-]? # optional sign
\d+ # 1 or more digits
) # end group 1
| # OR
\d\.\d\d # a digit, a dot, 2 digits
\K # forget them
\d+ # 1 or more digits
替换:
(?{1} # if group 1 exists, exponantial value
0 # replace with 0
: # else, nothing
) # end conditional
屏幕截图(之前):
截图(之后):