Notepad++:在行中添加前导零,但最多 9 位数字

Notepad++:在行中添加前导零,但最多 9 位数字

我有这些数字

94349850
999445183
999445183
94173345
54303954
42588251
150425435
74140053
1234547
12345678
123456789

我需要它们完全一致9 位数字如果不是,则添加前导零,所以我要寻找的结果是这样的

094349850
999445183
999445183
094173345
054303954
042588251
150425435
074140053
001234547
012345678
123456789

您能否建议使用哪种搜索\替换正则表达式?非常感谢

答案1

改编自前导零在 Notepad++ 社区论坛上:

  • 找什么:^(\d{9})|(\d{8})|(\d{7})|(\d{6})|(\d{5})|(\d{4})|(\d{3})|(\d{2})|(\d)$

  • 用。。。来代替:(?{1}\1)(?{2}0\2)(?{3}00\3)(?{4}000\4)(?{5}0000\5)(?{6}00000\6)(?{7}000000\7)(?{8}0000000\8)(?{9}00000000\9)

答案2

这可以分两个步骤完成:

首先,在所有行前面加上零,以便所有行至少包含 9 位数字:

Search: ^
Replace: 000000000
[x] Regular expression
[ ] . matches newline

^意思是:一行的开头

其次,使用这个正则表达式从所有行的开头删去多余的零:

Search: ^0*(\d{9})$
Replace: \1

搜索正则表达式的意思是:查找以任意数量的零开头0*,并\d{9}在行尾前有 9 位数字的行$。这 9 位数字被标记为一个组( ),可以在替换框中引用为\1。整个匹配项(即整行)将替换为此组的内容。

相关内容