在记事本++中添加尾随零到行

时间:2013-02-14 15:43:59

标签: regex notepad++

我有一个包含(数百)数字块的文件,如下所示;

这个很好(16x20,正确的行数和列数)

11111111111111111110
16666616666666661110
16111616111111162610
16111646111663132610
16162616261623132610
16162313261623132610
16162313261623132610
16162313261623132610
16162313261623132610
16162313261623132610
16162313261623132610
16162313261626132610
16166313661116632610
16111111111116132610
16666666666666136610
11111111111111111110

这个需要用尾随零填充,因此它是(16x20)

111111111111111111
166616666666663661
166611111111111661
166666366663661661
113161111111161611
1316166666616161
1616162262616161
11616166112616161
16616166116616161
16616162262616161
16616166266616161
16616111161116161
1661666666666616111
1661666166163366661
1641666166166613661
1111111111111111111

我想用零填充它们,所以它们都像第一个例子。我知道notepad ++中的正则表达式功能,但我很难让它工作。我感谢任何帮助。

5 个答案:

答案 0 :(得分:1)

你可以通过宏来实现。

首先使用宏将大量零添加到每行的末尾。

  1. Caret on the first entry
  2. 点击记录宏
  3. end
  4. 输出20个零
  5. down arrow
  6. 点击停止录制
  7. 播放宏,直到所有行都显示为

    11111111111111111100000000000000000000000000000000000000000000 16661666666666366100000000000000000000000000000000000000000000 16661111111111166100000000000000000000000000000000000000000000 16666636666366166100000000000000000000000000000000000000000000 11316111111116161100000000000000000000000000000000000000000000 131616666661616100000000000000000000000000000000000000000000 161616226261616100000000000000000000000000000000000000000000 1161616611261616100000000000000000000000000000000000000000000 1661616611661616100000000000000000000000000000000000000000000 1661616226261616100000000000000000000000000000000000000000000 1661616626661616100000000000000000000000000000000000000000000 1661611116111616100000000000000000000000000000000000000000000 166166666666661611100000000000000000000000000000000000000000000 166166616616336666100000000000000000000000000000000000000000000 164166616616661366100000000000000000000000000000000000000000000 111111111111111111100000000000000000000000000000000000000000000

  8. 则...

    1. Caret on first line
    2. 点击记录
    3. home
    4. right arrow键20次
    5. 按住shift并按end
    6. delete
    7. down arrow
    8. 点击停止录制
    9. 播放宏直到处理完所有行
    10. 您可以将整个过程保存为单个宏,以便将来只需单击一下。

答案 1 :(得分:1)

您可以使用插件ConyEdit来执行此操作。 与ConyEdit在后台运行,请按照下列步骤操作:

  1. 使用命令行cc.aal 00000000000000000000在20个零字符的行之后追加。
  2. 使用命令行cc.gc 1/\d{20}/获取正则表达式匹配的第一列。

答案 2 :(得分:0)

想要手工制作而不是进步吗?

打开Findreplace

从最后一个复制到第一个没有数字的行,所以......

在这个例子中

111111111111111111< ---从这里开始 到这里---> 166616666666663661 166611111111111661

将其粘贴到罚款中(是的,您有效地复制了某些应用程序允许您手动输入其他内容的返回值)

然后在替换框中输入“0”然后返回 击中那个魔法取代所有:D

每次点击新行时都会添加0,然后添加一个新的......新行....

编辑:快速查看另一种方法,一秒钟恢复备用选项:P给我10

编辑2:

好的,这样的事情会起作用:P刚试过它。
在find replace中使用[0-9]。所以,如果我正在寻找123123123123(这是12长),我需要增加到20, 你的FIND必须在() 所以..

查找将是

 ([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]  )

并且替换被称为\ 1没有正则表达式,这是我的错误

\亿

测试并确认!不要忘记你需要匹配所有 ,WRAP 关闭

等等你的其他数字,不确定你是否可以使用macros nd stuff循环:P但希望它比你现在有所帮助

两个很好的资源。

http://blog.creativeitp.com/posts-and-articles/editors/understanding-regex-with-notepad/comment-page-1/

http://regexpal.com/

答案 3 :(得分:0)

我可以给你一个宏观解决方案

转到文字的开头

选择Macro/Start Recording

结束,按 0 16次然后按 Home 向下箭头键

选择Macro/End Recording

您现在有一个宏可以在所有行的末尾添加十六个零。 在所有行上播放此宏。

您现在已经为所有行添加了零。

Alt 键并使用鼠标选择所需的文本块(列)并将其粘贴到另一个空的记事本选项卡中

列模式编辑的帮助是在记事本? / help contents菜单

内 祝你好运

答案 4 :(得分:0)

基于OP的评论:您可以尝试一个名为vim / gvim的编辑器

在vim中打开文件,然后输入:

:%s/.*/\=printf("%-20s",getline("."))/|%s/ *$/\=substitute(submatch(0)," ","0","g")/  

请勿忘记在上述输入后按<Enter>

然后您将看到文本已更改为您想要的内容。

当然vim宏也可以工作,但是,我觉得命令更好...... :)