如何在多个文件中仅替换notepad ++中的第一个文本实例?

时间:2013-04-06 08:30:32

标签: regex notepad++ replace

我正在使用一些更改来更新网站,并且我已经设法使用标准的查找和替换搜索对多个文件进行了大部分更改。我的f / r只剩下一个我需要修复的错误,但它在整个文档中出现了几次,我想只替换第一个实例,这是唯一一次错误。

 </div><div class="boxb">

在每个文件中发生七次,只有第一次我需要删除尾随的关闭DIV。所有其他都是正确的。

我收集我需要使用正则表达式模式,但我尝试了一些例子,它们要么不起作用,要么它们仍然会替换所有出现的事情,而不仅仅是我要求的第一个事件。

另外要明确的是,我不知道它是否有所作为,但我需要对多个文件执行此操作,因此使用“在文件中查找”而不是“替换”。

由于

2 个答案:

答案 0 :(得分:2)

一种方法是匹配文件的整个内容,然后替换您仍想保留的部分。这可确保整个文件恰好产生1个匹配。此方法尚未测试,但在大文件上可能会很慢。

  1. 按正常方式编写正则表达式,然后在前面添加(.*?),在后面添加(.*)

    (.*?)pattern(.*)
    

    您应该使用(.*?)pattern对几个文件进行测试,以确保它与您要删除的文本的第一个实例相匹配。

  2. 选中复选框 .匹配换行符

  3. 替换字符串可能会因您的正则表达式而异,但我们的想法是捕获您要保留在步骤1的正则表达式中的部分,并在此步骤中将其替换回来。

    例如,如果您要删除与pattern匹配的任何内容,请使用$1$2作为替换字符串。

答案 1 :(得分:0)

您提供的文字似乎是固定的,因此找不到正则表达式。 在文件中查找的替换部分将替换每个文件中的所有出现次数。假设文件数量不是很大,我建议使用查找文件中的查找全部按钮,然后逐个手动更改。如果文件数量很大,那么Notepad ++可能不是进行更改的最佳工具。

对于其他选项,请考虑Perl或Awk等程序;有了这些,任务就很简单。