在re.sub中使用捕获组

时间:2016-02-12 04:01:39

标签: python regex python-2.7 python-3.x python-2.x

我有以下代码:

>>> 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'

我正试图拉动" tv"或者"电影" xxx的值。如何获得:

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

1 个答案:

答案 0 :(得分:1)

使用

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

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

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