我有一个包含几行的文本文件。在每一行中,某个字符串出现一次或多次。我想提取字符串出现多次的所有行,并将这些行写入单独的文本文件。
我的尝试会检查正则表达式,我会在 UltraEdit 中查找和替换。UltraEdit 中的 RegEx 会是什么样子?
我不确定 UltraEdit,但这很容易 grep。grep .*STRING.*STRING.* myfile.file > output.file
这将搜索myfile.file
出现两次的任何行STRING
并将其输出到文件output.file
中。
如果是 Windows,请使用findstr .*STRING.*STRING.* myfile.file > output.file
. 同样的结果,检查output.file
包含两个(或多个)出现的完整行STRING
。
从 v12.00 开始,UltraEdit for Windows 中提供了 3 个正则表达式引擎。
使用这三个表达式中的任何一个,正则表达式都很简单。
UltraEdit正则表达式搜索字符串:string?+string
?
不匹配换行符。所以一行必须包含string
两次与除换行符之外的其他字符。
Unix或Perl正则表达式搜索字符串:string.+string
.
不匹配换行符(默认情况下)。所以一行必须包含string
两次与除换行符之外的其他字符。
在Perl中,\bstring\b.+\bstring\b
如果一个肯定匹配需要它string
是一个完整的单词,例如包含strings or substring
.
可以将产生正匹配的行写入“查找字符串列表”窗口,使用查找选项列出包含检查的字符串的行,并通过上下文菜单从该窗口复制到新文件中。
也可以使用查找选项过滤行并选择显示以仅显示包含string
至少两次的行。
此外,可以执行在文件中查找并选择打开文件选项和检查结果编辑窗口选项,以根据高级 - 设置或配置 - 搜索 - 设置查找中定义的配置将找到的行放入新文件中,而无需或带有其他信息输出格式。当然,也可以在没有选项结果的情况下在文件中运行相同的查找以编辑窗口检查以将找到的行写入活动输出窗口选项卡。
并且在Find strings with a regular expression 中记录了 UltraEdit 脚本,并将它们输出到新文件,以便使用正则表达式从活动文件字符串中 grep 到新文件中。