Python:用于解析URL组件的正则表达式

时间:2016-04-04 21:03:25

标签: python regex

让我们说这是我的网址字符串:

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))”部分的最佳方法是什么?使用正则表达式?

2 个答案:

答案 0 :(得分: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))']

答案 1 :(得分:0)

您可以使用正则表达式:

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