Python URL获取中间字符串

时间:2017-07-08 11:43:06

标签: python

如何获取此字符串" 534641" (这个值是动态的,可以是6,5,4位)?如何找到" - "之前" 534641"?

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 个答案:

答案 0 :(得分: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,避免使用' string',' list'等名称。 python使用的。不知道为什么会出错。

答案 1 :(得分:1)

你最后已经有了这个号码。只需使用以下命令拆分破折号:

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