2016-04-04 55 views
1

比方說這是我的URL字符串:的Python:正則表達式解析URL組件

https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&expires=86400

我想分析只是訪問令牌部分 「XXXXXX))」

這是我已經這樣做的遠:

from urllib.parse import urlparse 
strr = "https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&expires=86400" 

o = urlparse(strr) 

print(o.fragment) 

我得到的輸出是:

=的access_token XXXXXX))&過期= 86400

什麼是從這裏最好的方式得到只有 「XXXXXX))」 的一部分?使用正則表達式?

+1

'pydoc3 urllib.parse.parse_qs ' – larsks

回答

3

下面是做到這一點的一種方式 - 先用urlparse(),然後調用parse_qs()fragment

>>> from urllib.parse import parse_qs, urlparse 
>>> 
>>> strr = "https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&expires=86400" 
>>> o = parse_qs(urlparse(strr).fragment) 
>>> print(o['access_token']) 
['xxxxxx))'] 
0

您可以使用正則表達式:

(?<=access_token=)[^\)]*