我有一个很长的文本文件,其中包含两行格式的数据记录。有没有办法简单地使用IDM UltraEdit将所有“换行”字符替换为空格?
样本输入记录(两行):
OPCODE { V { X1; }
W { all=set; } }
需要重新格式化为一行
OPCODE { V { X1; } W { all=set; } }
我尝试使用正则表达式使用Ultraedit查找和替换来捕获换行符:
使用正则表达式:}[^n][ ]+W
替换为:} W
但结果是(删除第二行之前的空格字符)
OPCODE { V { X1; }
W { all=set; } }
我正在使用UltraEdit版本19.10.0.1016。
答案 0 :(得分:2)
UltraEdit有3个正则表达式引擎。
使用 UltraEdit 正则表达式引擎,搜索字符串可以是}[ ^t^r^n]+W
或更短}[ ^t^p]+W
,替换字符串是} W
。
使用 Unix 正则表达式引擎,搜索字符串为}[ \t\r\n]+W
,替换字符串也为} W
。
使用最强大的 Perl 正则表达式引擎,您有以下几种选择:
搜索字符串为\}[ \t\r\n]+W
,替换字符串也为} W
必须使用搜索字符串中的Perl regexp语法使用反斜杠转义}
,否则搜索字符串无效。这很可能是最快的版本。
搜索字符串为\}\s+W
,替换字符串为} W
\s
匹配任何空白字符,其中还包括换行符控制字符回车符和换行符以及文本文件中的其他字符,这些文件不经常使用Unicode表中的空格。这很可能比第一个选项慢,因为\s
定义的字符数更大。
搜索字符串为(?<=\})\s+(?=W)
,替换字符串只是一个空格字符
(?<=\})
是}
的正面观察,而(?=W)
是W
的正向预测。如果可能的话,后视和前瞻使得搜索通常比搜索避免它更慢。
还有很多其他搜索/替换表达。
区分大小写由“替换”对话框中的匹配大小写选项控制。