如何在Notepad++中用正则删除指定路径开头的XML Song元素
正则替换移除指定路径节点方案
可用正则表达式
查找框填入以下内容:
<Song[^>]*FilePath="D:\\Sync\\DJ\\TBP[^"]*"[\s\S]*?<\/Song>\s*
替换框留空即可。
使用配置要求
- 编辑器查找模式选择正则表达式
- 无需开启多行匹配模式,正则内
[\s\S]已经可以匹配包含换行在内的任意字符 - 若使用Notepad++等部分对反斜杠转义规则不同的编辑器,可将正则内的
\\替换为单个\再尝试
匹配逻辑说明
- 精准定位所有
<Song>起始标签中,FilePath属性值以D:\Sync\DJ\TBP开头的节点 - 非贪婪匹配该节点从起始标签到对应
</Song>闭合标签之间的全部内容(包含内部子标签、注释、换行、文本) - 自动匹配节点末尾的多余空白、换行符,避免删除节点后残留大量空行
替换效果验证
对你提供的示例XML执行替换后,将完整保留路径为D:\Sync\DJ\Library2开头的
<Song FilePath="D:\Sync\DJ\Library2\Caribou - Julia Brightly.mp3" FileSize="5021908" Flag="25165826"> <Tags Genre="Melodic" Album="Our Love" TrackNumber="7" Grouping="4" Year="2014" User1="T/" User2="v" Bpm="0.428571" Key="Am" Flag="1" /> <Infos SongLength="121.986032" LastModified="1652480858" FirstSeen="1643922546" FirstPlay="1645175276" LastPlay="1648048342" PlayCount="6" Bitrate="320" UserColor="4278255615" Cover="1" /> <Comment>Fade in/out! E3|vmkhb|32b+E3|vmkhb|16b</Comment> </Song>
内容的提问来源于stack exchange,提问作者iv0
相关产品推荐
相关产品推荐

