更清洁的方式使用re.sub

时间:2016-06-06 14:35:51

标签: python regex

我知道必须有更好的方法来完成以下任务。 这是我的功能:

def authenticated_url(url):
    return re.sub(r"(^https://)", "https://" + access_token() + "@", url)

access_token()将一个标记作为字符串返回,例如"1248jkdfhjksabcd382"

所需的输出如下:

>>> url = "https://github.com/jfach/autostager"
>>> auth_url = authenticated_url(url)
>>> url
'https://1248jkdfhjksabcd382@github.com/jfach/autostager'

这是我目前得到的输出,所以它有效,但我不能认为我错误/低效地使用re模块。

2 个答案:

答案 0 :(得分:2)

如果您的模式已修复,您可以执行以下操作:

url[:8] + access_token() + '@' + url[8:]

如果您对协议不确定,可以使用replace

url.replace('github', access_token() + '@github')

答案 1 :(得分:0)

怎么样:

>>> url = "https://{access_token}@github.com/jfach/autostager"
>>> url.format(access_token=access_token())
'https://1248jkdfhjksabcd382@github.com/jfach/autostager'