我试图自动删除包含"下载","免费"或"发布"使用RegEx从Python中的曲目标题开始,我已经接近解决方案,但我不知道为什么RegEx测试人员在我想删除的实际标签之前给我一个匹配。
而不是只匹配" [免费下载]"从曲目标题来看,它也匹配每个标签。我想用它来自动标记来自youtube-dl的下载曲目,因为SoundCloud和YouTube并没有给出好的元数据。
以下是我目前的RegEx:https://regex101.com/r/yaJ9yC/3
答案 0 :(得分:0)
这是因为*
单独是贪婪的。它符合线路上最长的可能性。例如:[\(\[]
匹配(
,然后.*
匹配所有Astronaut REMIX) [FREE
,download.*[\)\]]
匹配DOWNLOAD]
。
python re
库中的非贪婪重复由*?
完成。但是因为匹配从左侧站点开始,对于上面的示例,它仍然不起作用,您需要排除左侧站点上的括号和方括号:
[\(\[][^\(\[]*download.*?[\)\]]