我正在使用Notepad ++清理工作中的信息,然后在Excel中使用它。经过一些清理后,我以下面的文字结尾:
01
Ammount 1-1 [tab] Ref 1-1
Ammount 1-2 [tab] Ref 1-2
02
Ammount 2-1 [tab] Ref 2-1
Ammount 2-2 [tab] Ref 2-2
Ammount 2-3 [tab] Ref 2-3
[...]
nn
Ammount nn-1 [tab] Ref nn-1
[...]
Ammount nn-yy [tab] Ref nn-yy
“[tab]”部分代表制表符(\ t)。
“[...]”部分代表具有相似模式的“n”行文本。
当我在Excel中粘贴此信息时,我得到的行有两个单元格中自动分隔的标签,然后是一行数字的行,之后我手动将此数字移动到以下每行之前的(空)单元格最后我删除了空行,结果如下文所示:
01 [tab] Ammount1-1 [tab] Ref1-1
01 [tab] Ammount1-2 [tab] Ref1-2
02 [tab] Ammount 2-1 [tab] Ref 2-1
02 [tab] Ammount 2-2 [tab] Ref 2-2
02 [tab] Ammount 2-3 [tab] Ref 2-3
[...]
nn [tab] Ammount nn-1 [tab] Ref nn-1
[...]
nn [tab] Ammount nn-yy [tab] Ref nn-yy
Excel中的最后一个手动作业可能需要很长时间,具体取决于我正在使用的报告的扩展名,所以我想知道Notepadd ++中是否有一种方法,使用正则表达式,可以立即调整所需的格式防止在Excel中手动执行此操作。
如果您需要任何澄清,请告诉我。
提前致谢!
答案 0 :(得分:-1)
(更新显然你需要一个脚本功能来执行此操作)
可以一次完成,但需要回调功能 回调中的和,你必须做另一个简单的替换。
伪代码示例(有效的正则表达式):
func Callback(grp1,grp2)
{
string record_num = grp1;
string all_other_lines = grp2;
all_other_lines.replace( /(?m)^\s*(\S.*)/, record_num + "\t$1"/, "g" );
return all_other_lines;
}
input.replace( /(?ms)^(\d+)((?:(?!^\d).)+)/, Callback($1,$2), "g");