2

我有一个很长的文本文件,其中包含两行格式的数据记录。有没有办法使用 IDM UltraEdit 将所有“换行符”字符简单地替换为空格?

示例输入记录(两行):

OPCODE   { V { X1;  }
           W { all=set; } } 

需要重新格式化成一行

OPCODE   { V { X1;  } W { all=set; } } 

我尝试使用 Ultraedit Find and Replace 使用正则表达式来捕获换行符:

使用的正则表达式:}[^n][ ]+W

用。。。来代替:} W

但结果是(删除第二行之前的空白字符)

OPCODE   { V { X1;  } 
W { all=set; } } 

我正在使用 UltraEdit 版本 19.10.0.1016。

4

1 回答 1

2

UltraEdit 有 3 个正则表达式引擎。

使用UltraEdit正则表达式引擎,搜索字符串可以是}[ ^t^r^n]+W或者更短}[ ^t^p]+W,替换字符串是} W.

使用Unix正则表达式引擎,搜索字符串是}[ \t\r\n]+W,替换字符串也是} W.

使用最强大的Perl正则表达式引擎,您有多种选择:

  1. 搜索字符串是\}[ \t\r\n]+W,替换字符串也是} W
    }必须在搜索字符串中使用 Perl 正则表达式语法中的反斜杠进行转义,否则搜索字符串无效。这很可能是最快的版本。

  2. 搜索字符串是\}\s+W,替换字符串是} W
    \s匹配任何空白字符,其中还包括换行符控制字符回车和换行符以及文本文件中不经常使用的 Unicode 表中的空白字符。这很可能比第一个选项慢,因为定义的字符数\s更大。

  3. 搜索字符串是(?<=\})\s+(?=W),替换字符串只是一个空格字符。
    (?<=\})是一个积极的后视}(?=W)是一个积极的前瞻W。与避免搜索(如果可能的话)相比,后视和前瞻通常会使搜索变慢。

  4. 以及许多其他搜索/替换表达式。

区分大小写由替换对话框中的匹配大小写选项控制。

于 2015-04-12T11:29:00.490 回答