有没有办法找到在每个文件中重复多次但只替换每个文件的第一个结果的字符串?
谢谢
Notepad++ 的查找对话框包括一个在文件中查找选项卡和一个在文件中替换按钮。要在所有文件中替换abc
为def
,您可以尝试使用以下正则表达式搜索字符串\A(.*?)abc(.*)\z
。\1ghi\2
您将需要同时选择正则表达式和点匹配换行符。
\A
文件开头的唯一匹配项。这(.*?)abc
是一个非贪婪匹配并捕获所有内容,但不包括第一个abc
。(.*)
匹配并将所有其他内容捕获到由\z
. (我在没有这(.*)\z
部分的情况下进行了实验,所有出现的abc
都被改变了。)
如果要完成的替换还需要正则表达式,那么您可能需要更改\2
替换文本的部分。
不知道这将如何处理大文件。无论您使用什么大小的文件,我都建议您在使用文件替换工具之前进行备份。
在 Notepad++ 6.3.2 中使用两个非常小的文件进行了测试。
如果要对多个打开的文件执行替换,则无法在“查找”对话框中单击一下;您必须手动选择每个文件并一次替换一个。
您可以录制一个宏来执行此操作,但是我不确定您是否也必须为每个文件运行一次,或者您是否可以让宏对所有打开的文件重复。