捕获电影标题组

Capturing groups of movie title

我正在尝试从电影标题中捕获以下组:

file = "The Great Home Se01E01 Meatballs for Dinner"

<show> = "The Great Home"
<season> = "Se01"
<episode> = "E01"
<title> = "Meatballs for Dinner"

暂时,我只能部分捕获并使用以下代码:

import re

file = "The Great Home Se01E01 Meatballs for Dinner"
seasonEpID = re.search(r'(\bS/?.+\d{1,2})+(E/?.+\d{1,2})', file)
print(seasonEpID.groups())

其中returns以下:

('Se01', 'E01')

如何捕获<show><season><episode><title>这四组?

我会使用具有以下正则表达式模式的 re.findall

^(.*?)\s+(Se\d+)(E\d+)\s+(.*)$

示例脚本:

file = "The Great Home Se01E01 Meatballs for Dinner"
parts = re.findall(r'^(.*?)\s+(Se\d+)(E\d+)\s+(.*)$', file)
print(parts)

这会打印:

[('The Great Home', 'Se01', 'E01', 'Meatballs for Dinner')]
import re
file = "The Great Home Se01E0k1 Meatballs for Dinner"
match = re.fullmatch(r"(?P<show>.+?) (?P<season>Se\d+)(?P<episode>E\d+) (?P<title>.+)", file)
print(match.groupdict() if match else "No match") 

'''
{
  'episode': 'E01',
  'season': 'Se01',
  'show': 'The Great Home',
  'title': 'Meatballs for Dinner'
}
'''