Python正则表达式从url中提取vimeo id

时间:2013-03-08 14:51:17

标签: python regex url vimeo

embed_url = 'http://www.vimeo.com/52422837'
response = re.search(r'^(http://)?(www\.)?(vimeo\.com/)?([\/\d+])', embed_url)
return response.group(4)

回复是:

5

我希望

52422837

有人有想法吗?对于正则表达式我真的很糟糕:S

4 个答案:

答案 0 :(得分:10)

不要重新发明轮子!

>>> import urlparse
>>> urlparse.urlparse('http://www.vimeo.com/52422837')
ParseResult(scheme='http', netloc='www.vimeo.com', path='/52422837', params='',
query='', fragment='')

>>> urlparse.urlparse('http://www.vimeo.com/52422837').path.lstrip("/")
'52422837'

答案 1 :(得分:4)

使用\d+(无括号)匹配文字斜杠+数字:

response = re.search(r'^(http://)?(www\.)?(vimeo\.com/)?(\d+)', embed_url)

结果:

>>> re.search(r'^(http://)?(www\.)?(vimeo\.com/)?(\d+)', embed_url).group(4)
'52422837'

您使用的是不需要的角色组([...])。模式[\/\d+]只匹配/+或数字之一。

答案 2 :(得分:1)

要获取最后一个斜杠之后的所有内容(假设有一个),以下简单的正则表达式应该这样做:

[^/]*$

(贪婪地把所有东西都抓到最后但不是斜线。)

答案 3 :(得分:0)

您是否尝试使用美元($)符号完成正则表达式?