查找和删除所有之间和包括标签,只有当某些词在其中



我有xml文件,其中包含我们从另一家公司收购的卡拉ok歌曲的滚动歌词。我需要移除每一个包含多行短语的标记,如:

8
BAR
INSTRUMENTAL
BREAK

它们总是单独出现在标签。公司告诉我们,每次出现的常用词是BAR &休息。这将避免实际的歌词被删除在剩余的页面标签(希望)。在整个xml中也可能有这些标记的多个实例。我需要找到并删除它们。

我可以选择开始<pg一次一个在notepad++中使用这个正则表达式:>

(<pg)(.+?)(?=<pg)

是否有一种方法可以添加代码来定位上述正则表达式中的单词BAR和BREAK,并且只找到和删除那些完整的标签(在文件内多次)?然后我可以切换到查找文件进行批量搜索并替换例行程序?

下面是一个示例3标签连续。我需要找到并删除第二个完整的标签,然后继续删除另一个完整的标记,直到它到达文件的末尾。(冲洗并重复)

我有大约24个文件要测试,7000个文件要跟踪。我希望能在">"标签总是BAR和BREAK。

非常感谢您的帮助和建议。

<pg id=“lyrics.16” t=“157.09,15.88”>
<ln>
<lyr s="I’M " t=“161.28,.24”/>
<lyr s="ON " t=“161.52,.43”/>
<lyr s="MY " t=“161.95,.37”/>
<lyr s="OWN " t=“162.32,1.05”/>
</ln>
<ln>
<lyr s="I’M " t=“164.57,.26”/>
<lyr s="ON " t=“164.83,.42”/>
<lyr s="MY " t=“165.25,.43”/>
<lyr s="OWN " t=“165.68,1.07”/>
</ln>
<ln>
<lyr s="I’M " t=“167.91,.24”/>
<lyr s="ON " t=“168.15,.38”/>
<lyr s="MY " t=“168.53,.42”/>
<lyr s="OWN " t=“168.95,.62”/>
</ln>
<ln>
<lyr s="NO " t=“169.57,.48”/>
<lyr s="NO " t=“170.05,.19”/>
<lyr s="NO " t=“170.24,.41”/>
<lyr s="NO " t=“170.65,.43”/>
<lyr s="NO " t=“171.08,.56”/>
</ln>
<ln>
<lyr s="YEAH " t=“171.64,.23”/>
<lyr s="EH " t=“171.87,.42”/>
<lyr s="YEAH " t=“172.29,.58”/>
</ln>
</pg>
<pg id=“lyrics.17” t=“172.97,7.93”>
<ln>
<lyr s="8 " t=“174.16,.21”/>
<lyr s="BAR " t=“174.37,.24”/>
</ln>
<ln>
<lyr s="INSTRUMENTAL " t=“174.61,4.52”/>
</ln>
<ln>
<lyr s="BREAK " t=“179.13,1.67”/>
</ln>
</pg>

<pg id=“lyrics.18” t=“180.9,9.72”>
<count c=“pt.1” t=“184.92,1.27” n=“4”/>
<ln>
<lyr s="WOAH " t=“186.55,.25”/>
<lyr s="OH " t=“186.8,.39”/>
<lyr s="WOAH " t=“187.19,.41”/>
</ln>
<ln>
<lyr s="I " t=“187.6,.21”/>
<lyr s="CAN’T " t=“187.81,.38”/>
<lyr s="LET " t=“188.19,.28”/>
<lyr s="YOU " t=“188.47,.38”/>
<lyr s="GO " t=“188.85,.6”/>
</ln>
<ln>
<lyr s="MY " t=“189.45,.44”/>
<lyr s="LITTLE " t=“189.89,.6”/>
<lyr s="GIRL " t=“190.49,.03”/>
</ln>
</pg>

我无法创建所需的notepad++搜索的额外部分,我正在寻求建议。

我建议不要相信猜测的事情,要分步骤完成:

  1. 删除你确定不需要的东西
    <lyr s="(8|BAR|INSTRUMENTAL|BREAK) " t=“[d.,]+”/>->没有

  2. 这将清空一些<ln>s,删除它们
    <ln>s*</ln>->没有

  3. 这将清空一些<pg>s,删除它们
    <pg[^>]*>s*</pg>->没有

相关内容

最新更新