我有一个很长的文本文件,其中包含两行格式的数据记录。有没有办法使用 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。
最佳答案
UltraEdit 有 3 个正则表达式引擎。
使用 UltraEdit 正则表达式引擎,搜索字符串可以是 }[ ^t^r^n]+W
或更短}[ ^t^p]+W
替换字符串为 } W
.
使用 Unix 正则表达式引擎,搜索字符串为 }[ \t\r\n]+W
替换字符串也是 } W
.
使用最强大的 Perl 正则表达式引擎,您有多种选择:
搜索字符串为
\}[ \t\r\n]+W
替换字符串也是} W
.
}
在搜索字符串中的 Perl 正则表达式语法中必须使用反斜杠进行转义,否则搜索字符串无效。这很可能是最快的版本。搜索字符串为
\}\s+W
替换字符串为} W
.
\s
匹配任何空白字符,其中还包括换行控制字符回车符和换行符以及文本文件中 Unicode 表中不经常使用的空白字符。这很可能比第一个选项慢,因为\s
定义的字符数更大。搜索字符串为
(?<=\})\s+(?=W)
并且替换字符串只是一个空格字符。
(?<=\})
是}
的正向回顾和(?=W)
是对W
的积极展望。与尽可能避免搜索相比,后视和前视通常会使搜索速度变慢。以及许多其他搜索/替换表达式。
区分大小写由“替换”对话框中的“匹配大小写”选项控制。
关于regex - 如何使用 ultraedit 删除换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29588668/