《正则匹配移除分轨歌曲轨道号,顺利搜索歌词》后续
foobar2000吧
全部回复
仅看楼主
level 1
zhmcn0983 楼主
分轨歌曲,经常把轨道编号等标题外标签都放进文件名称里,它们之间用空格、“-”符号(暂称“分隔符”)分隔成多项。这对于分轨单曲非常实用,它高度概括了标签上的核心属性,让人仅通过文件名称就对单曲标签一目了然。但是,有的标签里标题是空的,这在目前让fb歌词搜索只能依靠文件名称,而加入了其他后对搜索形成了障碍。移除其他文字,提取出标题让fb搜索是我们要做的事情。事实上“移除”是仅针对搜索筛选出标题,并不改变歌曲名称。先说一句,仅用标题搜索出来的歌词很多并不匹配歌曲,需人工挑选喔。
1. fb ESLyric预留了多个有关歌词搜索和来源的操作界面让我们自行设定。先介绍3个操作界面。附图。
1.1.字段处理:文件-参数选项-工具-ESLyric-歌词选项-搜索设置-字段处理。
1.2.歌词搜索:视图-ESLyric-搜索歌词-歌词搜索。
1.3.歌词来源:文件-参数选项-工具-ESLyric-歌词选项-歌词来源。
附图
2.一般情况下,在“标题/音轨艺术家”栏看到标题外内容时,就需要移除干预。下面几种情况和参数先编列一起:
2.1. 移除轨道编号:^\d.*?(?=[lbk]\u2E80-\u9FFFa-zA-Z[rbk])
2.2. 移除最后分隔符及后面内容(后1项):(\s|\-)(?=((?!(\s|\-)).)*$).*
2.3. 移除倒数第2个分隔符及后面内容(后2项):(\s|\-)(?=((?!(\s|\-)).)*$).*
2.4.移除第1分隔符及后面内容(后多项):[lbk]\s|\-[rbk].*
2.5.移除最后分隔符“-”及后面内容(“-”后1项):\-(?=((?!\-).)*$).*
2.6.移除第1分隔符及前面内容(前1项):^.*?([lbk]\s\-[rbk])
2.7.移除最后分隔符及前面内容(前多项):^.*([lbk]\s\-[rbk])
3. 说明:
3.1.轨道编号
Fb考虑到外文因素不移除空格。名称前缀包括轨道编号等符号,都先行移除。
3.2.后1项
XX-XX-XX或XX XX XX(标题“ ”或“-”歌手)
标题在前,标题本身或带有分隔,歌手在最后。移除最后一个分隔符及后面内容。
3.3.后2项
标题在前,后面有歌手等2项。移除后2个分隔符及后面内容。参数同上,操作叠加。如果要移除3项,可循序新增并勾选这一操作。
3.4.后多项
标题在前,后面有歌手等多项。移除分隔符后面的所有内容。
3.5.“-”后1项
XX XX XX-XX(标题-歌手)
带有空格的外文名称歌曲,仅对最后“-”分隔符及后面内容移除。
3.6.前1项
XX-XX或XX XX(歌手-标题)
标题在后面,分隔符前面有歌手1项。移除分隔符及前边1项。要移除前2项,可循序新增并勾选这一操作。
3.7.前多项
XX XX-XX或XX XX XX(乐队 歌手“ ”或“-”标题)
标题在后面,分隔符前面有多项。移除分隔符及前边多项内容。
4. “操作”输入时,在“字段处理”界面按“+新增”新增7个操作。fb操作是从上到下进行的。由于新增操作的移除是根据空格和“-”分隔符来处理,需在fb原操作之前进行。操作确定后右键选择“上移”多次,把新建操作全部移到窗口上部。为描述方便我们可将新增“操作”从上到下升序编号。在新操作上按左键选取“正则匹配移除字符串”项目。再将以上操作参数按序分别粘贴到相应操作的“参数1”里。在“处理字段”仅勾选“标题”,艺术家和专辑不勾选处理。附图。
保留fb原操作。
由于歌曲名称包含的内容其选择和排序形式多样,很难用一个设定包括一切。根据“标题/音轨艺术家”显示的名称模式,我们可以在“字段处理”中酌情勾选相应的1个或多个新增操作。但勾选多个操作时要注意它们的叠加效应。对于一个目录或专辑下的分轨歌曲,往往用同样的规则模式编辑名称,因而一次设置后在目录或专辑内通用,非常方便的。操作后的移除结果在“歌词搜索”标题框中显示。
经过以上处理和叠加fb原操作,歌曲名称仅剩下核心标题以供搜索。还可以在“歌词来源”界面右键相关词源改变歌词来源顺序,以获最佳歌词。
经过以上设置一般可自动搜索歌词了。如果偶然遇到标题前后形式套不上的,在“歌词搜索”标题框人工修改、搜索就行。ESLyric已经非常优秀,用fb原操作,在“歌词搜索”界面勾选“显示全部歌词”,不自动显示的歌词会显示出来供挑选。
大家可用“04 a 原版 伴奏 剪短 月光下的凤尾竹 降B -副本”、“04 - 原版-伴奏-剪短-月光下的凤尾竹-降B-副本”这两个编辑名称为两首歌改名试验一下,勾选1、2、3、7这几项设定就能把标题筛选出来。
感谢网络的搜索服务与信息。希望大家批评改正。
2024年01月04日 16点01分 1
level 1
zhmcn0983 楼主
对不起大家,码字复制粘贴到fb吧过程出现了严重错误,导致移除参数错码,[]被替换,刚才检查时才发现。正确参数如下:
2.1. 移除轨道编号:^\d.*?(?=[\u2E80-\u9FFFa-zA-Z])
2.2. 移除最后分隔符及后面内容(后1项):(\s|\-)(?=((?!(\s|\-)).)*$).*
2.3. 移除倒数第2个分隔符及后面内容(后2项):(\s|\-)(?=((?!(\s|\-)).)*$).*
2.4.移除第1分隔符及后面内容(后多项):[\s|\-].*
2.5.移除最后分隔符“-”及后面内容(“-”后1项):\-(?=((?!\-).)*$).*
2.6.移除第1分隔符及前面内容(前1项):^.*?([\s\-])
2.7.移除最后分隔符及前
面内容(前多项):^.*([\s\-])
附参数截图【图片】
2024年01月05日 16点01分 3
level 1
如歌名为,歌手名-歌名,如何在搜索栏移除歌手名,只留歌名
如下图,如何把钟明秋-自动去掉,只搜后面的顺流逆流
2024年01月19日 05点01分 4
level 1
zhmcn0983 楼主
你好。用上图最后一个(2.7)设置,把“-”前面的字符移除就可以了。
2024年01月19日 08点01分 5
谢谢,还有一个问题,当换歌后,搜索没关,又重新把前面的加上了,又得重新打开搜索才会把前面的歌手去掉,有什么办法打开搜索后,换歌也不变呢?
2024年01月19日 19点01分
@SEX89 试了一下,这是fb的问题。你可以不勾或删除新增操作设置,只用原装操作,播放一首歌曲名称中间加了下划线“_”的歌曲,你发现的问题就出现了。谢谢。
2024年01月20日 15点01分
@zhmcn0983 嗯,反正一直没弄明白这个过滤的用法,原来这过滤好象也是我提出的要求
2024年01月23日 17点01分
@SEX89 作者也没作个说明怎么用法,所以一直不明白怎么设定
2024年01月23日 17点01分
level 1
zhmcn0983 楼主
因篇幅所限不能描述太细,抱歉。你所发现的换歌后歌词搜索需重开的问题有必要你直接向汉化或开发团队反映。大家谢谢你。
2024年01月23日 23点01分 6
level 1
请问,上面的我试过了,代码是把-和空格都算在一起作为参考的
我想只以-为标记,删掉-前面所有内容的代码怎么写。。。我试了好几次也不成,不知道语法规则啊。。。
2025年01月07日 08点01分 7
level 1
另外,2.5的代码是不是少了点什么,移除的好像不对
2025年01月07日 08点01分 8
level 1
看懂一点了,因为之前的-是被删掉了,所以就没有参考了
把删掉-的代码去掉,或者代码改为只保留-就行了
然后再根据2.5的代码改编,2.5是删除-之后的,结合2.2和2.7就知道怎么改了
2025年01月10日 10点01分 9
level 2
正在研究,谢谢分享。
2026年01月23日 09点01分 10
1