Regex 如何仅替换记事本++;在多个文件中?

Regex 如何仅替换记事本++;在多个文件中?,regex,notepad++,replace,Regex,Notepad++,Replace,我正在更新一个网站,只做了一些更改,我已经使用标准的查找和替换搜索对多个文件进行了大部分更改。我的f/r只剩下一个错误需要修复,但在整个文档中它会出现多次,我只想替换第一个实例,这是唯一一次错误 </div><div class="boxb"> 这在每个文件中都会发生七次,仅在第一次需要删除尾随的结束DIV时发生。其他所有操作都是正确的 我想我需要使用正则表达式模式,但我已经尝试了几个示例,它们要么不起作用,要么仍然替换所有出现的情况,而不仅仅是我需要的第一个 同

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

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

这在每个文件中都会发生七次,仅在第一次需要删除尾随的结束DIV时发生。其他所有操作都是正确的

我想我需要使用正则表达式模式,但我已经尝试了几个示例,它们要么不起作用,要么仍然替换所有出现的情况,而不仅仅是我需要的第一个

同样要明确的是,我不知道这是否有区别,但我需要对多个文件执行此操作,因此使用“在文件中查找”而不仅仅是“替换”


谢谢

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


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

一种方法是匹配文件的全部内容,然后替换掉仍然需要保留的部分。这将确保整个文件生成正好1个匹配项。此方法尚未测试,但在大文件上可能会比较慢

  • 只需按照常规编写正则表达式,然后在前面添加
    (.*)
    ,在后面添加
    (.*)

    (.*?)pattern(.*)
    
    您应该在一些文件上使用
    (.*)模式进行测试,以确保它与要删除的文本的第一个实例匹配

  • 选中复选框
    匹配换行符”

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

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


  • 文件的数量大约是150,所以不,不是我想手动做的事情,这就是为什么我首先用F+R进行更改的原因。如果有人能教我如何使用其他程序,我愿意使用其他程序,但使用Notepad++肯定是可行的?我可能应该说我没有使用正则表达式的经验,我只是在认为可能需要时才提到它。