在 re.sub 中使用捕获组

Use capture group in re.sub

我有以下代码:

>>> s = 'https://www.microsoft.com/ja-jp/store/tv/%E7%BE%8E%E7%94%B7-%E3%82%A4%E3%82%B1%E3%83%A1%E3%83%B3-%E3%82%B9%E3%82%BF%E3%83%BC%E8%AA%95%E7%94%9F-%E3%83%8E%E3%83%BC%E3%82%AB%E3%83%83%E3%83%88%E7%89%88-subtitled/season-1/8d6kgwzj5pvv'
>>> re.sub(r'\/((tv)|(movies))\/\S+\/', '/**tv|movies**/x/', s)
'https://www.microsoft.com/ja-jp/store/**tv|movies**/x/8d6kgwzj5pvv'

我正在尝试为 xxx 提取 "tv" 或 "movies" 值。我该怎么做才能得到:

>>> s = 'https://www.microsoft.com/ja-jp/store/tv/x/season-1/8d6kgwzj5pvv

使用

re.sub(r'\/((tv)|(movies))\/\S+\/', '/\1/', s)

编辑:要匹配第二种情况,您可以使用:

re.sub(r'/((tv)|(movies))/[^/]+', r'//x', s)