正则表达式:在Python 3中匹配歌曲名称

时间:2016-08-20 04:03:09

标签: python regex python-3.x

我目前正在开发一个解析音乐数据库数据的项目,我正在使用python(3.5.1版)中的正则表达式创建搜索功能。

我想创建一个正则表达式来制作歌曲名称 - 没有字符的歌曲跟随名称和带有功能详细信息的歌曲 - 但不是包含匹配歌曲名称中给定歌曲名称的歌曲(示例可能有助于说明我的观点):

我想要匹配的内容:

  1. 工作
  2. 工作(英尺德雷克)
  3. 什么不想匹配:

    1. 工作
    2. 锻炼
    3. 我当前的正则表达式是' /工作(\ s(\ w +)?/ ',但这符合所有4个示例案例。

      有人可以帮我找出一个表达方式来实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

就个人而言,我会选择像

这样的东西
^Work(?:\s+\(.+\))?$

将匹配您提供的两个测试用例,但不是您要避免的两个测试用例。如果你想对匹配艺术家是谁更具体,你可以选择像

这样的东西
^Work(?:\s+\((?:ft.|featuring).+\))?$

哪个仍会匹配您的两个案例,但只会匹配以“ft”开头的括号中的内容。或“特色”。