Python:regex解析URL组件



假设这是我的URL字符串:

https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&过期=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))"部分的最佳方式是什么?使用正则表达式?

这里有一种方法-首先使用urlparse(),然后在fragment:上调用parse_qs()

>>> 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))']

您可以使用正则表达式:

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

最新更新