^(\w+) - (\d+). (.+) \((\d+)\) \[(\w+)]
我创建了以下正则表达式,以匹配我用于存储音乐集的目录模式。
目录结构的一般模式是这样的
artist - albumnr. albumname (year) [quality]
我正在尝试将艺术家,专辑,年份和质量分成小组。但是,我想清理albumname并删除括号内的任何内容或短划线后出现的任何字符串。
e.g。
albumname -blahblah (remastered)
- 只会在第3组比赛中返回albumname albumname (remastered)
- 仍会返回albumname albumname
- 正则表达式应该仍然能够返回相册名称,即使结果中没有 - 或者说是支持。答案 0 :(得分:0)
这个匹配albumname -blahblah (remastered)
和albumname (remastered)
但不匹配albumname (remastered) -blahblah
:
^(\w+) - (\d+)\. (.+?) ?(?:-\w+)? ?(?:\(.*?\))? \((\d+)\) \[(\w+)\]
测试here
如果您还想与albumname (remastered) -blahblah
^(\w+) - (\d+)\. (.+?) ?(?:-\w+)? ?(?:\(.*?\))? ?(?:-\w+)? \((\d+)\) \[(\w+)\]