Macros 如何用空格填充字段,直到记事本中的长度++;

Macros 如何用空格填充字段,直到记事本中的长度++;,macros,notepad++,Macros,Notepad++,我用记事本++编写了一个宏,用于将ldif文件转换为csv文件,其中包含几个字段。一切正常,但我有一个最后的问题:我必须有两个特定长度的字段,在这一刻,我不能确保长度,因为在源文件中,它们不是这样来的 例如,我生成以下行: 12345,姓名,123456 我必须确保第二个和第三个字段有30个字符(右侧填充空格)和9个字符(左侧填充零),因此在这种情况下,我应该生成: 12345,姓名,000123456 我还没有发现Notepad++如何匹配一个模式以添加空格/零,因此我在中添加了1个空格/零到

我用记事本++编写了一个宏,用于将ldif文件转换为csv文件,其中包含几个字段。一切正常,但我有一个最后的问题:我必须有两个特定长度的字段,在这一刻,我不能确保长度,因为在源文件中,它们不是这样来的

例如,我生成以下行: 12345,姓名,123456

我必须确保第二个和第三个字段有30个字符(右侧填充空格)和9个字符(左侧填充零),因此在这种情况下,我应该生成: 12345,姓名,000123456

我还没有发现Notepad++如何匹配一个模式以添加空格/零,因此我在中添加了1个空格/零到适当的字段,并根据需要重复此步骤多次,以确保长度(这是29和8,因为它们不能为空)并在正则表达式中搜索长度(例如:\d{1,8}用于第三个字段)

我的问题是:我能否只重复宏的一个步骤几次(而宏的其余部分只重复一次)

我已经阅读了与这一点()相关的wiki,但也没有发现任何东西

如果不可能,怎么可能是一个好的解决方案?创建另外两个不同的宏,在执行主宏之后,执行这两个新宏几次


提前谢谢

使用记事本++的两遍解决方案是可能的。查找数据文件中从未出现过的一对字符或两个短字符序列。我将在这里使用
=##=

首先,生成或将输入文本转换为
12345,=##=
格式。即在名字后加30个空格,在数字前加9个零(这里使用下划线只是为了让事情更清楚)

第二步,对
=\code>执行正则表达式搜索,并替换为
\1、\2

我刚刚提出了一个类似的解决方案