如何替换字符串中的单个斜杠"/",不包括"://"模式中的斜杠字符



我正在尝试找到一种方法来替换字符串中的单斜杠字符"/",除了"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%

最新更新