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

Python正则表达式从url提取vimeo id,python,regex,url,vimeo,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 有人有主意吗?我对正则表达式的使用非常糟糕:S使用\d+(无括号)匹配文本斜杠+数字: 52422837 结果: response = re.search(r'^(http:/

答复是:

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

5
有人有主意吗?我对正则表达式的使用非常糟糕:S

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

52422837
结果:

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

您使用的字符组(
[…]
)不需要任何字符组。模式
[\/\d+]
正好匹配
/
+
或一个数字中的一个。

您是否尝试过用美元($)符号完成regexp?

要获得最后一个斜杠(假设有一个)后的所有内容,以下简单的regex应该完成:

[^/]*$

(贪婪地抓住所有不是斜线的东西。)

不要重新发明轮子

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

OP可能正在搜索更大的文本体。变量名表明OP正在搜索URL。如果这是一个简化的问题示例(在提出问题时,这是一个明智的做法),该怎么办?好的。。这个确实更好。我不知道urlparse。。现在就潜水吧;D谢谢
>>> 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'