2016-02-12 90 views
-1

我有以下代碼:使用捕獲組在應用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「看電視」或「電影」值。我該怎麼做,才能得到:

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

'應用re.sub(R'\ /((電視)|(電影))\/\ S + \ /',r'/ \ 1 /',s)' – Alik

+0

@Alik請參閱更新的問題。這會砍掉'season-1' – David542

回答

1

使用

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

編輯:要符合第二種情況下,你可以使用:

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

謝謝,請問您能否看到更新後的問題,我忽略了一部分內容,因此正則表達式正在切斷'season-1'部分。 – David542