输入是一个可能包含两个或更多成功斜杠的URL。我用以下两个命令纠正了它,这似乎是非常令人满意的可读解决方案。
我想知道你是否只用一个re.sub()命令就可以实现同样的功能。
url = re.sub("/[/]+", "/", url) # two or more slashes replace with one slash
url = re.sub("http:/", "http://", url) # correct one mistake of the previous command
答案 0 :(得分:2)
是的,你可以。使用否定lookbehind标记?<!
:
print(re.sub('(?<!http:)//+', '/', 'http://httpbin.org//ip'))
# http://httpbin.org/ip