Eclipse水库模拟器将ASCII数据文件作为输入。他们有一种压缩已保存数据的方法,因此在输入他们保存的数据时,他们必须像这样扩展它:
4*0 4*1 0 3*1 5*0 1 0 2*1 10*.2
Expanded to
0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 .2 .2 .2 .2 .2 .2 .2 .2 .2 .2
重复次数是除1以外的任何正整数,数据可以是任何非负实数。
给定一串压缩数据,使用正则表达式来实现扩展。我应该在替换线上写什么?非常感谢UltraEdit中的一个例子;脚本/宏被接受。
原始正则表达式:
Find: (\d+)\*(\d)
Replace:
答案 0 :(得分:1)
这种类型的替换需要替换端的一般字符串表达式,据我所知,UltraEdit不提供只有“查找/替换”界面。但你可以写一个脚本来做到这一点:
UltraEdit.activeDocument.write(
UltraEdit.activeDocument.selection.replace(
/(\d+)\*(\S+)/g,
function(_, count, value) {
return new Array(count-0+1).join(value+' ').replace(/ $/,''); }
));