如何在字符串中替换单个斜杠“ /”(不包括“://”模式中的斜杠字符)

时间:2018-10-01 22:11:48

标签: python regex substitution

我正在尝试找到一种方法来替换字符串中的单个斜杠字符“ /”(“ https://”中的斜杠除外或“ http://”中的斜杠除外)

a="https://example.com/example/page/"

例如,我想用'%'代替'/',而不是'https://'中的斜杠字符或'http://'中的斜杠字符,以便最后得到类似以下的结果:< / p>

a="https://example.com%example%page%"

我尝试过

re.sub('(?<!:\/)\/', '%', a)

在python中,但这是不正确的。

1 个答案:

答案 0 :(得分:2)

您可以使用

re.sub(r'(https?|ftps?)://|/', lambda x: x.group(0) if x.group(1) else '%', s)

详细信息

  • (https?|ftps?)://-匹配并捕获到组1 http / https / ftp / ftps中(如果需要,可添加更多),然后匹配{{1 }}
  • ://-或
  • |-在任何其他情况下匹配/

如果第1组匹配,则将整个匹配回粘贴,否则,/将替换为/

请参见Python demo

%