2017-02-17 14 views
-1

我有很多使用此模式的字符串[INTEGER]-[URL-SLUG]。示例:Python - 正則表達式只能在模式後才替換字符

234234-url-slug-1 
2-urlslug2 
301-url-slug4 

我需要用'/'替換整數後的' - ',但保留其他' - '不變。所以,最終的字符串將是:

234234/url-slug-1 
2/urlslug2 
301/url-slug4 
+0

你有沒有嘗試過的東西? – TheLostMind

+0

['(?<= \ d)-'點擊試試](https://regex101.com/r/B25nhB/1) – TessellatingHeckler

回答

1

re.sub函數具有可選參數計數這是要被替換模式發生的最大數量:

s = '234234-url-slug-1' 
result = re.sub(r'^(\d+)-', r'\1/', s, 1) 

print(result) 

輸出:

234234/url-slug-1 
1

這應該工作使用re.sub

> import re 

> s = '234234-url-slug-1' 
> re.sub(r'(\d)\-', r'\1/', s) 
'234234/url-slug-1' 

替換字符串\1是指在匹配模式的第一個捕獲組:'(\d)'