0

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: 
4

1 回答 1

1

这种类型的替换需要在替换端有一个通用的字符串表达式,据我所知,UltraEdit 不只提供“查找/替换为”接口。但是你可以编写一个脚本来做到这一点:

UltraEdit.activeDocument.write( 
  UltraEdit.activeDocument.selection.replace(
    /(\d+)\*(\S+)/g,
    function(_, count, value) { 
      return new Array(count-0+1).join(value+' ').replace(/ $/,''); }
));
于 2013-11-03T04:54:59.173 回答