2017-02-25 60 views
2

假設我有這樣的路徑(字符串類型)Python的匹配字符串路徑,並與前路項替換

/user/{id}/list/{id} 

我想搜索「ID」和每個確切的比賽,我想用前面的路徑+'_id'替換id。所以在上面的例子中,所描述的過程將導致到

/user/{user_id}/list/{list_id} 

我該如何在python中做到這一點?

編輯:我也想存儲在變量新的ID名稱,所以我想操作不應該在的地方。

EDIT2:有可能在路徑

+0

可以顯示真實的例子嗎? – RomanPerekhrest

+0

@RomanPerekhrest你是什麼意思,其實這是我的情況 – Crone

+0

*存儲在變量的新ID名稱一個確切的例子* - 將在那裏只有2 * ID名稱*(如您的網址)或它們的數量是動態的? – RomanPerekhrest

回答

3

使用捕獲組和替換字符串中的這個捕捉參考{ID}發生的不定數:

re.sub(r'([^/]+)/{id}', r'\1/{\1_id}', s) 

,如果你想例如更換存儲在列表中,你可以這樣做:

(Python 2.7版)

def rep(m): 
    ids.append('%s_id'%m.group(1)) 
    return '%(g1)s/{%(g1)s_id}'%{'g1':m.group(1)} 

ids=[] 

re.sub(r'([^/]+)/{id}', rep, s) 

(蟒蛇3.X)

def rep(m): 
    ids.append('{}_id'.format(m.group(1))) 
    return '{0}/{{{0}_id}}'.format(m.group(1))