我有这些数字
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
。整个匹配项(即整行)将替换为此组的内容。