我正在尝试找到一种方法来替换字符串中的单斜杠字符"/",除了"https://"中的斜杠或不"http://"中的斜杠
a="https://example.com/example/page/"
例如,我想用"%"代替"/",而不是"https://"中的斜杠字符或"http://"中的斜杠字符,以便最后我得到的结果如下:
a="https://example.com%example%page%"
我试过了
re.sub('(?<!:/)/', '%', a)
在 Python 中,但它是不正确的。
您可以使用
re.sub(r'(https?|ftps?)://|/', lambda x: x.group(0) if x.group(1) else '%', s)
详
(https?|ftps?)://
- 匹配并捕获到第 1 组http
/https
/ftp
/ftps
(如果需要添加更多(,然后匹配://
|
- 或/
- 匹配任何其他上下文中的/
如果匹配组 1,则整个匹配项将粘贴回去,否则,/
将替换为%
。
请参阅Python演示:
import re
s = 'https://example.com/example/page/'
print(re.sub(r'(https?|ftps?)://|/', lambda x: x.group(0) if x.group(1) else '%', s))
# => https://example.com%example%page%