在Notepad ++或程序员的Notpad中批量查找和替换多行的函数?

问题描述:

我有一个包含数千行代码的文件,我需要先找到一个文件名(./THIS-TEXT.rom之间的文本),然后复制该文本,然后替换下面的行(在这个one-替换)与该文本。然后继续前进,直到找到下一个序列。在Notepad ++或程序员的Notpad中批量查找和替换多行的函数?

我一直在手动这样做之前意识到它可能需要我8小时的手动完成我的项目。我认为必须有一些更简单的方法来做到这一点。以下是两个代码块连续的例子。请注意,它只是连续几千个中的两个。

<game id="494"> 
    <path>./The Legend of Zelda.rom</path> 
    <name>legend of zelda, the (en,eu,it)</name> 
    <genre>Miscellaneous</genre> 
</game> 
<game id="954"> 
    <path>./Final Fantasy.rom</path> 
    <name>final fantasy (usa, europe)</name> 
    <genre>Miscellaneous</genre> 
</game> 

基本上,我需要弄清楚如何采取“./”和 之间的文本“.ROM,并用它替换的下一行‘’和”看起来像这个,因为它向下移动为下一个发生的文件。

<game id="494"> 
    <path>./The Legend of Zelda.rom</path> 
    <name>The Legend of Zelda</name> 
    <genre>Miscellaneous</genre> 
</game> 
<game id="954"> 
    <path>./Final Fantasy.rom</path> 
    <name>Final Fantasy</name> 
    <genre>Miscellaneous</genre> 
</game> 

任何帮助将不胜感激。

在记事本+ +这可以用一个简单的正则表达式来完成。搜索:

^(\h*<path>\./)([^<>\r\n]+)(\.rom</path>\h*[\r\n]+\h*<name>)[^<>\r\n]*(</name>) 

\1\2\3\2\4 

说明替换:

^(\h*<path>\./)获取的开放路径的文本和捕获组\1保存它。

([^<>\r\n]+)从路径行中获取想要的文件名称文本,并将其保存为\2

(\.rom</path>获取路径行的其余部分。

\h*[\r\n]+\h*<name>)获取换行符和空格以及名称行的开始。此文本和路径行的其余部分保存为\3

[^<>\r\n]*获取名称行中不需要的部分并不保存它。

(</name>)获取名称行的最后部分并将其保存到\4

重新装配。 \1\2\3使路径行和名称行的开始。接下来的\2用文件名的有用部分替换不需要的名称行文本。最终\4完成新的名称行。

当然,必须在Notepad ++的替换窗口中选择“正则表达式”。