regex 查找和删除所有之间和包括标记只有当某些词是在

n6lpvg4x  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(79)

我有包含卡拉OK歌曲的滚动歌词的XML文件,我们正在从另一家公司收购。我需要删除包含多行短语的每个标签,如:
8
BAR
仪器
断开
他们总是在自己的标签内单独的页面.该公司告诉我们,每次出现的共同的话是BAR & BREAK.这将避免被删除的其余页面标签内的实际歌词(希望).可能有这些标签在整个XML的多个示例以及.我需要找到并删除所有这些.
我可以在Notepad++中用这个正则表达式一次一个地选择开始的〈pg和直到下一个开始的〈pg的所有代码:
(<pg)(.+?)(?=<pg)
有没有一种方法可以在上面的正则表达式中添加代码来定位单词BAR和BREAK,并且只找到并删除这些完整的标记(在文件中多次)?然后我可以切换到Find In Files进行批量搜索和替换例程?
下面是一个连续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++搜索所需的附加部分,我正在寻求建议。

mrwjdhj3

mrwjdhj31#

我建议不要相信 * 猜测 * 的事情,并按照步骤来做:
1.把你确信不需要的东西拿走
<lyr s="(8|BAR|INSTRUMENTAL|BREAK) " t=“[\d.,]+”/>-〉无
1.这将清空一些<ln>,删除它们
<ln>\s*</ln>-〉无
1.这将清空一些<pg>,删除它们
<pg[^>]*>\s*</pg>-〉无

相关问题