正则表达式以捕获情节编号

时间:2018-11-06 20:19:36

标签: python regex

以下正则表达式有什么问题?

s = "s4, ep2 -- The one"
>>> re.search(r'(Episode|Ep?\.?)?\s?(\d{0,})', s, re.IGNORECASE).group(2)
''

我正在尝试从2捕获"S4, Ep2"。我以为Ep?\.?\s?d{0,}会捕获它,但似乎我遗漏了一些东西。

以下是可能输入的其他示例输入:

Episode 2
Ep. 2
E. 2
2
Season 4, E 2 -- Hello

以上所有内容都应显示为“ 2”

1 个答案:

答案 0 :(得分:0)

此版本正在运行。我们可以尝试在EpisodeEp或仅在E上进行匹配,后跟可选的点和/或空格。然后,捕获剧集编号。

s = "s4, ep2 -- The one"
print(re.search(r'(?:Season \d+,\s+)?(?:Episode|Ep|E)?\.?\s?(\d{0,})',
    s, re.IGNORECASE).group(1))

2