以下正则表达式有什么问题?
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”
答案 0 :(得分:0)
此版本正在运行。我们可以尝试在Episode
,Ep
或仅在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