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'