Answers:
有一个简单的方法可以实现此目的。您需要执行3个步骤。
转到搜索菜单>查找...>选择“标记”标签。激活正则表达式。搜索^<Path>
(^
表示行首)。别忘了检查“书签行”并按“标记所有”
==>您要保留的所有行都有一个书签
转到菜单“搜索-书签-反向书签”
==>您要删除的所有行都带有书签。
转到菜单“搜索-书签-删除书签的行”
==>删除所有带书签的行。
从6.3开始,实际上可以分两个步骤完成。我认为它可以比我第一次尝试5.9时更早完成。
使用stema的帖子作为此答案的基础。现在少了一步。标记线并删除未标记的线。做完了 详细说明如下。
搜索菜单“查找”。在“查找”对话框中,单击“标记”选项卡。激活正则表达式。搜索^<Path>
(^
表示行首)。别忘了检查“书签行”并按“标记所有”
==>您要保留的所有行现在都有一个书签
搜索菜单->书签->删除未标记的行。
==>所有非收藏行都被删除。
^
在搜索词中添加,也不需要使用正则表达式。希望这对某人有帮助。
正则表达式替换
(?!^.*test.*$)^.+
用您要求的文字替换测试
更换
[\r\n]{2,}
与 \r\n
使用^(?!<Path>).*\r\n
空字符串替换匹配。通用版本为^(?!.*?test).*\r\n
。这不会删除文件末尾的空行。删除所有其他行,包括多个连续的空行。
(?!)
是否定的查询。^.*test.*$
选择包含所需文本的整行。
[\r\n]{2,}
匹配\r\n
出现的次数超过所有的次数,这是Windows的新行。如果您使用的是Linux或其他操作系统,则可能需要弄乱它。第二种是用一根回油管代替它。
\r\n
帖子中提到的EOL是Windows所使用的,因此可能不是您想要的。通常在Linux环境中只是\n
,在Mac环境中只是\r
,因此,如果您从任一环境中拉出文件,都不会是Windows风格的EOL。但是,如果您通过FileZilla中下载和ASCII模式触发,它可能会改变他们重新进入Windows EOL(如\n
为\r\n
)。因此,如果正则表达式不起作用,请通过转到“查看>显示符号>显示行尾”来检查EOL样式。CR = \r
。LF = \n
。
在我看来,最简单的方法是只使用“在当前文档中查找全部”功能,然后将结果复制到一个新文件中,或者选择全部并替换为当前文件。
这将找到包含您的文本的所有行,并在底部列出它们。只需右键单击搜索结果并复制/粘贴即可。
\tLine [\d]*:
。仍然是一个很好的答案。
使用记事本++没有简单的方法来完成所需的操作。您需要将程序下载到计算机上或在VB中编写脚本(我假设您使用的是Windows)。
您可以使用sed两种方法之一来做您想做的事情。sed实用程序是* nix上的最爱,可以从Windows的GnuWin(http://gnuwin32.sourceforge.net/packages/sed.htm)的伟大人士那里找到。您将下载此程序,然后在命令提示符下运行命令。
删除所有不包含的行:
sed -i '/^<PATH>/!d' file
将包含的所有行打印到新文件中:
sed -n '/^<PATH>/p' file > newfile
我建议您使用打印到新文件的行。原因是您可能不会第一次获得regex语句。sed实用程序使用正则表达式基本语法(请参见http://www.regular-expressions.info/reference.html上的参考资料)。如果是* nix路径(/ var / www),则需要转义/字符才能使正则表达式正常工作。
示例:sed -n '/^\/var\/www/p' file > newfile
这将打印出所有以“ / var / www”开头的行。如果我申请转义/字符,则该命令将引发错误。您可以使用反斜杠字符\来转义特殊字符(例如/)。
使用正则表达式替换更好的解决方案:
(?!^.*SOMETEXT.*$)^.+\r?\n
一无所有