如何在python中通过正则表达式获取字符串的一部分

时间:2019-03-31 20:19:01

标签: python regex

我想通过正则表达式获取字符串的一部分,但我尝试这样做,但返回的值超出了我的需要。这是我的代码:

Release_name = 'My Kitchen Rules S10E35 720p HDTV x264-ORENJI'
def get_rls(t):
    w = re.match(".*\d ", t)

    if not w: raise Exception("Error For Regular Expression")
    return w.group(0)


regular_case = [Release_name]
for w in regular_case:
    Regular_part = get_rls(w)
    print(">>>> Regular Part: ", Regular_part)

此示例的代码“ My Kitchen Rules S10E35 720p HDTV x264-ORENJI” 返回此“ My Kitchen Rules S10E35”,但我不需要“ S10E35”,只需返回此My Kitchen Rules

1 个答案:

答案 0 :(得分:4)

您可以使用

w = re.match(r"(.*?)\s+S\d+E\d+", t)

并且由于您需要的值在组1中:

return w.group(1)

请参见Python demo,输出为>>>> Regular Part: My Kitchen Rules

模式详细信息

  • (.*?)-除换行符以外的任何0+个字符,并且尽可能少
  • \s+-超过1个空格
  • S\d+E\d+-S字符,超过1个数字,E和1个以上数字

re.match仅从字符串的开头开始匹配,^不需要在模式的开头。