抓住三个单词之一后的数字 - python

我想抓住三个单词之一后显示的数字,如以下示例所示:

x1 = Break, Staffel 1, Part 2 # 1
x2 = Seinfeld, Season 11 # 11
x3 = Friends, Saison 4 # 4

这是我到目前为止的内容:

re.split(', ((Staffel)|(Season)|(Saison)) ', x)[-1]

尽管仅当数字位于字符串末尾时才有效。什么是更好的方法呢?

python大神给出的解决方案

使用re.search(),而不是re.split()。然后,您可以使用捕获组来获取单词后的数字。

m = re.search(r', (?:Staffel|Season|Saison) (\d+)', x);
if (m):
    digits = m.group(1)

我在第一组中使用了?:,因为您无需捕获单词,因此分组仅用于交替。

\d匹配一个数字,并且+匹配至少一个前面的RE,因此匹配任何长度数字。