我有一个URL,例如:
http://name.abc.wxyz:1234/Assts/asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5
从这个网址我只想提取“asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5
”我怎么能这样做?
我仍在学习正则表达式,但我无法解决上述问题。任何建议将不胜感激。
答案 0 :(得分:9)
您可以使用urlparse
,假设asset.epx
相同:
>>> import urlparse
>>> url = 'http://name.abc.wxyz:1234/Assts/asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5'
>>> res = urlparse.urlparse(url)
>>> print 'asset.epx?'+res.query
asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5
如果您需要来自网址的其他信息,这非常有用(您可print res
查看您可以获得的其他信息;)
如果您使用的是Python 3,则必须执行from urllib.parse import urlparse
。
答案 1 :(得分:7)
你真的不需要正则表达式。只需拆分字符串:
url.split('/')[-1]
答案 2 :(得分:3)
根据Python的版本,您需要Python 2.x中的urlparse
(http://docs.python.org/2/library/urlparse.html)或Python 3.x中的urllib.parse
(http://docs.python.org/2/library/urlparse.html)。在Python 3(我所有的)中,以下代码片段可以实现您的需求,而无需使用正则表达式:
import urllib.parse
address = "http://name.abc.wxyz:1234/Assts/asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5"
parsed = urllib.parse.urlsplit(address)
print("{}?{}".format(parsed.path.split("/")[-1], parsed.query)
这里的输出是“asset.epx?id = F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5”。