我的 URL 包含错误的双斜杠(“//”),我需要将其转换为单斜杠。不用说,我想保持“https:”后面的双斜杠不变。
可以在字符串中进行此更改的最短 Python 代码是什么?
我一直在尝试使用
re.sub
,带有冒号否定的正则表达式(即,
[^:](//)
),但它想要替换整个匹配项(包括前面的非冒号字符),而不仅仅是双斜杠。
也许我应该将所有双斜杠斜杠转为单斜杠,然后最后将“https://”转换为“https://”?
可以使用正向断言正则表达式来做到这一点,该表达式仅匹配前面有冒号的双斜杠:
import re
url = "https://www.example.com//path//to//resource"
corrected_url = re.sub(r"(?<=:)/+", "/", url)
print(corrected_url)
此代码执行以下操作:
-
导入
re
模块: 这将加载 Python 的正则表达式库。 -
定义 URL:
这会将包含双斜杠的示例 URL 分配给
url
变量。 -
使用
re.sub()
替换双斜杠: -
r"(?<=:)/+"
是正则表达式模式。让我们将其分解:-
(?<=:)
是一个正向断言。它确保匹配的双斜杠前面有一个冒号 (:
),而不包含在匹配中。 -
/+
匹配一个或多个斜杠。
-
-
/
是替换字符串,它将匹配的双斜杠替换为单个斜杠。 -
url
是要搜索和修改的输入字符串。 -
打印更正后的 URL:
这将显示
corrected_url
,其中双斜杠已替换为单个斜杠,但https://
部分除外。
此代码的结果将是:
https://www.example.com/path/to/resource
标签:python,replace
From: 78780630