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

屏幕截图(之前):

截图(之后):