2017-07-08 25 views
1

如何得到這個字符串「534641」(這個值是動態的,可以是6,5,4位數)?如何在「534641」之前找到「 - 」?Python的URL得到中間字符串

import re 

string = "http://www.test.com.my/white-red-gift-perfume-powerbank-yellow-534641.html?ff=1\u0026s=Ebsr" 
m = re.search('-(.+?).html', string).group(1) 
print (m) 

https://repl.it/JSxp

回答

2

你幾乎沒有。既然你想要的僅僅是個數字,你可以使用\d只捕獲數字:

>>> m = re.search('-(\d+).html', string).group(1) 
>>> print (m) 
534641 

另一種方法是告訴「全部字符節選-」:

>>> m = re.search('-([^-]+).html', string).group(1) 
>>> print (m) 
534641 

欲瞭解更多信息,請參閱doc

一些快速注意:.html應該是\.html,避免使用由python使用的名稱,如'串','列表'。如果不知道原因,它可能會出錯。

+0

真棒答案,將標誌着這個作爲回答,感謝您的幫助+1 – Rick

1

你已經在最後有號碼。只是採用分體式的破折號:

m = re.search('-(.+?).html', string).group(1).split("-") 
# last element in m is the number you are looking for 
print (m[-1]) 
+0

另一個偉大的選擇,感謝您的幫助+1 – Rick